我以前通过在<?xml version='1.0' encoding='UTF-8'?>
<ns1:rootElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="some_location" xmlns:ns1="namespace1"
xmlns:ns2="namespace2">
<ns1:firstElement>some text</ns1:firstElement>
<ns1:secondElement>
<ns2:otherElement>some text</ns2:otherElement>
...
<ns2:nElement>
<ns2:innerElement>
<ns2:otherInnerElement>some text</ns2:otherInnerElement>
</ns2:innerElement>
</ns2:nElement>
</ns1:secondElement>
</ns1:rootElement>
内将viewInjectors
声明为@Component
来共享一个服务实例:
@Component({
selector: 'my-sel',
viewInjectors: [SharedService],
templateUrl: 'template.html',
pipes: [MyPipe]
})
此解决方案在Angular 2 RC5中不再起作用。有什么想法吗?
答案 0 :(得分:6)
如果要为应用程序或模块共享服务,则需要在引导应用程序或定义模块时声明它。
@NgModule({
declarations: [
AppComponent
],
providers: [SharedService], // <----
bootstrap: [ AppComponent ]
})
export class AppModule { }
或
providers
请勿忘记从您的组件的docker run hello-world
属性中删除该服务...