私はAngular 2アプリ全体で利用可能な設定が必要です。サービスを介してこれらの値を提供し、サービスがbootstrap()
メソッドに組み込まれていることを保証することが、これを処理する最善の方法を理解しています。共有サービスは、コンポーネント2にもインポートする必要がありますか?
だから私のサービスは、(init.service.ts
)このようなものです:
import {Injectable} from 'angular2/core';
@Injectable()
export class InitService {
public static startNodeIdContent:number = 1053;
public static startNodeIdMedia:number = 9999;
}
その後、私のブートストラップ法は、このようなものです:今
import {bootstrap} from 'angular2/platform/browser'
import {ROUTER_PROVIDERS} from 'angular2/router';
import {AppComponent} from './app.component'
import {RouteNames} from './services/route-names.service';
import {InitService} from './services/init.service';
bootstrap(AppComponent, [ROUTER_PROVIDERS,RouteNames,InitService]);
、私は、コンポーネントにstartNodeIdContent
値を利用できるようにする必要がありますこのように:
import { Component } from 'angular2/core';
import { HTTP_PROVIDERS } from 'angular2/http';
import { provide } from 'angular2/core';
import { Router } from 'angular2/router';
import { XHRBackend } from 'angular2/http';
import { RouteNames } from '../services/route-names.service';
import { ContentNode } from './content-node';
import { ContentService } from './content.service';
import { ContentTreeComponent } from './content-tree.component';
import { ContentDashboardComponent } from './content-dashboard.component';
@Component({
selector: 'my-dashboard',
template: `
<div class="tree-panel-container">
<div class="tree-panel-content">
<content-tree [startNodeId]="startNodeIdContent"></content-tree>
</div>
</div>
<content-dashboard></content-dashboard>
`,
directives: [ContentTreeComponent, ContentDashboardComponent],
providers: [
HTTP_PROVIDERS,
ContentService
]
})
export class ContentComponent {
constructor(private _routeNames:RouteNames, InitService){
_routeNames.name.next('Content');
}
startNodeIdContent = InitService.startNodeIdContent;
}
コンポーネントInitService
が認識されません。まだそれを消費する各コンポーネントにInitService
サービスをインポートする必要がありますか?私の中にはBootstrapメソッドにそれを注入すればいいと思っていますが、これがどのくらい正確に機能するかはドキュメントから分かりません。
ありがとうございました。
この素晴らしい返信をお寄せいただきありがとうございます。 – Dan