我有一个名为“ myService”的Angular1服务
然后,我使用Angular2 UpgradeAdapter对其进行了升级,如下所示:
var upgradeAdapter = new ng.upgrade.UpgradeAdapter();
upgradeAdapter.upgradeNg1Provider('myService');
现在,我需要将其注入angular2组件。官方升级指南目前仅具有打字稿版本。在打字稿中,您可以使用@Inject注释及其服务名称,如下所示:
export class MyComponent {
constructor(@Inject('myService') service:MyService) {
...
}
}
使用ES5按名称注入服务的语法是什么?
要完成pixelbits的答案,您还需要在提供者列表中定义我的服务:
document.addEventListener('DOMContentLoaded', function() {
ng.platform.browser.bootstrap(Cmp, [MyService]);
});
var Cmp = ng.core.
Component({
selector: 'cmp',
providers: [ MyService ]
}).
(...)
Class({
constructor: [MyService, function(service) {
}]
});
这取决于您要执行的操作:为Angular2应用程序中的每个元素或每个组件共享服务实例。
这个答案可以提供有关使用ES5的Angular2中的依赖项注入的更多详细信息:使用ES5的Angular
2中的依赖项注入
编辑
其实有一个微妙之处。在升级的情况下,您不需要使用该ng.platform.browser.bootstrap
功能进行引导,而是使用upgrade
对象中的一个进行引导。
upgrade.bootstrap(document.body, ['heroApp']);
heroApp
Angular1模块在哪里,其中包含我想在Angular2应用程序中使用的服务和工厂。
实际上,当您upgradeNg1Provider
在升级时调用该方法时,相应的提供程序会在其关联的注射器中注册。这意味着您无需在上述位置指定它们。
因此,您只需要在要注入的位置执行以下操作:
(...)
Class({
constructor: [ ng.core.Inject('customService'),
ng.core.Inject('customFactory'),
function(cService, cFactory) {
}]
});
MiškoHevery为此提供了一个很好的插件:http://plnkr.co/edit/yMjghOFhFWuY8G1fVIEg?p=preview 。
希望对您有帮助,蒂埃里
问题内容: authService.getLoggedin()返回false或true取决于用户是否登录。然后,我想不允许他们进入网址,如果不允许的话。 但是我收到此错误:错误:[$ injector:modulerr]由于以下原因无法实例化模块WikiApp:[$ injector:unpr]未知提供程序:authService 问题答案: 在配置阶段,您只能要求提供程序($ routeProv
我在使用Guice注入的Factory时遇到问题。 我读过这篇好文章http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html但我还是不明白。也就是说,为什么模块从未使用过?比如在Guice。createInjector()方法。 我尝
我正在尝试将一些细枝视图作为定制邮件服务的模板注入,这将被另一个服务用作依赖项。 我不明白为什么,但好像Symfony没有看到我试图在$parameters中注入的参数。 将此服务数组作为参数注入的正确方法是什么? 以下是services.yaml部分: RestMailer服务构造函数: 以下是返回的错误: 在DefinitionErrorExceptionPass.php第54行中: 无法自动
这是我想写在最后的代码: 这是我目前所尝试的: 我得到的错误: 不能隐式地将类型UserUpdateProfileNotify转换为Notification 对我来说,转换
我有一些UserService对用户实体进行操作。我创建了自己的注释和ConstraintValidator类作为实现 我需要将UserService注入到ConstraintValidator中。而且,正如spring文档所说,在注册bean之后: 不幸的是,它对我没有作用。我在字段(在实现ConstraintValidator的类内)使用NullPointerException累加stackt