2016-07-18 2 views
1

저는 활성 구성 요소를 기반으로 페이지 머리글 제목을 변경하려는 Angular2/Dart 응용 프로그램을 구축하고 있습니다.다트 각도 2 활성 구성 요소를 기반으로 사이트 헤더 제목을 어떻게 업데이트 할 수 있습니까?

저는 rxjs Subject as explained here을 기반으로 한 답을 발견했습니다. Observable로 rxjs Subject를 사용하지 않고 어떻게 동일한 결과를 얻을 수 있습니까? 구체적으로 angular2-dart에서 이것을 직접 수행 할 수있는 다른 방법이 있습니까?

여기에 working plunker은 rxjs Subject lib를 기반으로합니다. 다트에서

<h1>{{componentTitle}}<h1> 

답변

1

당신은 Stream 사용하는 대신 ObservableSubjectStreamController :

@Injectable() 
export class RouteNames{ 
    StreamController<String> _nameController = new StreamController<String>(); 
    String get name => _nameController.stream; 

    void newName(String name) => _nameController.add(name); 
} 

당신은 가입 할 수 있습니다와 같은 :

AppComponent(this._routeNames){ 
    _routeNames.name.listen((n) => this.routeName = n); 
} 

및 업데이트를 같이 보낼 수 있습니다 :

HeroListComponent(
    this._service, 
    this._router, 
    this._routeParams, 
    this._routeNames:RouteNames){ 
    this._selectedId = +routeParams.get('id'); 
    _routeNames.newName('Heroes'); 
} 

@Injectable() 
export class RouteNames{ 
    StreamController<String> _nameController = new StreamController<String>.broadcast(); 

    public get name => _nameController.stream; 

    newName(String name) => _nameController.add(name); 
} 
:

당신이 스트림에게 broadcaststream을 내리는 데 필요한 여러 가입자를 지원하기 위해