下面的代码中的viewProvider是什么?与供应商有什么不同?
class Greeter { greet(name:string) { return 'Hello ' + name + '!'; } } @Component({ selector: 'greet',viewProviders: [ Greeter ],template: `<needs-greeter></needs-greeter>` }) class HelloWorld { }
在您的示例中,提供者和viewProvider之间没有区别,因为HelloWorld的模板不使用< ng-content> ;.如果您在< ng-content> …< / ng-content>?内投影内容,那么Greeter无法注入预计的内容,因为您正在使用
原文链接:https://www.f2er.com/angularjs/143089.htmlviewProviders: [Greeter]
如果您希望Greeter可以将其注入预计的内容中,那么您可以使用
providers: [Greeter]
所以viewProviders将提供者限制为除了预计内容之外的其他孩子,而提供者则允许所有孩子都使用提供者.值得注意的是,ViewProviders允许您防止投影内容混乱您的服务,这在库中尤其有用.