【发布时间】:2014-04-22 21:44:04
【问题描述】:
如何在 angular dart 中手动注入实例?这将等效于 angularjs 中的以下内容:
var myInjector = angular.injector(["ng"]);
var $http = myInjector.get("$http");
【问题讨论】:
标签: angularjs dependency-injection dart angular-dart
如何在 angular dart 中手动注入实例?这将等效于 angularjs 中的以下内容:
var myInjector = angular.injector(["ng"]);
var $http = myInjector.get("$http");
【问题讨论】:
标签: angularjs dependency-injection dart angular-dart
组件内部的代码示例。
@NgComponent(
selector: 'rating',
publishAs: 'ctrl')
class RatingComponent {
Injector _injector;
RatingConfig _config;
RatingComponent(this._injector) {
_config = _injector.get(RatingConfig);
// or
_config = injectByName("RatingConfig");
}
void injectByName(String typeName) {
_injector.types.takeWhile((Type e) {
if (e.toString() == typeName) {
_config = _injector.get(e);
return false;
}
return true;
});
}
}
【讨论】:
使用 _injector.get(RatingConfig) 的方法会起作用。
例如,过滤器代码在注入器上显式调用“get”以获取过滤器的实例:lib/core/filter.dart, line 50
【讨论】:
如果你需要手动注入实例,因为你在 main() 方法中,你可以执行以下操作:
class MyAppModule extends Module {
MyAppModule() {
type(MyService);
}
}
main() {
Injector injector = applicationFactory().addModule(new MyAppModule()).run();
MyService myService = injector.get(MyService);
}
【讨论】: