作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Dart (1.24.2) 和 angular dart (3.1.0) 的大型应用程序。
我决定将应用程序分成两个包:第一个是基础层,第二个是真正的应用程序包。这个想法是能够在其他项目中重用基础层。
在基础层中,我使用了几个服务(提供者),它们对应用程序来说是全局的并且被广泛使用。
现在,在应用层,我需要为一些服务添加一些字段。
我遇到的问题是您不能使用使用修改的服务的基础层组件。我收到的消息是:“异常(exception):找不到提供者。”
我不能说这是错误,但它有助于创建角度模块。
一个例子。
我已经(来自 Webstorm)使用 Angular2 生成了一个示例应用程序:Todo 列表应用程序。
鉴于此,我对“src/todo_list/todo_list_component.dart”源进行了一些修改,删除了 TodoListService 提供程序。
//providers: const [TodoListService],
import 'src/todo_list/todo_list_service.dart';
// AngularDart info: https://webdev.dartlang.org/angular
// Components info: https://webdev.dartlang.org/components
@Component(
selector: 'my-app',
styleUrls: const ['app_component.css'],
templateUrl: 'app_component.html',
directives: const [materialDirectives, TodoListComponent],
providers: const [materialProviders, TodoListService],
)
class AppComponent {
import 'package:angular2/core.dart';
import 'package:angular_inject_subclass_base/src/todo_list/todo_list_service.dart' as base;
/// Mock service emulating access to a to-do list stored on a server.
@Injectable()
class TodoListService extends base.TodoListService {
String description;
}
import 'package:angular_inject_subclass_base/src/todo_list/todo_list_component.dart';
最佳答案
您可以使用提供子类
providers: const [
materialProviders,
const Provider(base.TodoListService, useClass: TodoListService)
],
base.TodoListService
, Angular 将注入(inject)子类
TodoListService
这将与被调用的构造函数兼容,因为它是一个子类。
TodoListService
单独是
const Provider(TodoListService, useClass: TodoListService)
的简短形式(可能会在 Angular 5 中停止使用)
关于dart - Angular2 Dart : Dividing a project in packages does not allow to reuse base components with modified providers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45934718/
我是一名优秀的程序员,十分优秀!