所以我有这个名为StoreService的类:
import {Injectable} from "angular2/core";
import {BusinessAction} from "../business/BusinessAction";
import {AppStore} from "angular2-redux-util/dist/index";
@Injectable()
export class StoreService {
constructor(private appStore:AppStore, private businessActions:BusinessAction) {
this.appStore.dispatch(this.businessActions.fetchBusinesses());
}
}
其他组件依赖注入此类“StoreService”。 但是,注入StoreService的这些组件抱怨没有BusinessAction的提供程序。
现在可以肯定的是,我可以通过提供商向他们提供BusinessAction:[BusinssAction]甚至可以在主引导程序提供商那里提供它......(一切都很好......
但是,我不想只因为StoreService应该知道并关心BusinessAction,有没有办法告诉Injectors从StoreService获取BusinessAction的实例,这是唯一一个使用BusinessAction的类?
TX
肖恩
答案 0 :(得分:1)
您需要将BusinessAction
添加到bootstrap(AppComponent, [OtherProviders, StoreService, BusinessAction])
答案 1 :(得分:0)
必须从执行处理的组件的注入器中看到SomeComponent -> StoreService -> BusinessAction
类的提供程序。我的意思是:SomeComponent
。
Günter是对的!在引导主要组件时放置提供程序将起作用。在这种情况下,该服务将可用于所有应用程序。如果您只想指定providers
,请将其放在@Component({
(...)
providers: [ StoreService, BusinessAction ]
})
export class SomeComponent {
}
属性中:
curl -X POST -u 'admin:admin' -d 'resource=somedomain:aem' -d 'id=sonar.profile.java' -d 'value=java-sonar-way-aem-rules-22238' 'http://localhost:9000/sonar/api/properties'
您也可以在父组件中定义它,如果有的话......
我认为这个答案可以帮助您理解依赖注入在Angular2中的工作原理: