Esistono tre metodi che ho visto per gestire il rilevamento del cambiamento in Angular2.Quando utilizzare Observable vs EventEmitter vs Dot Rule per il rilevamento del cambiamento in angular2
osservabili
@Injectable() export class TodosService { todos$: Observable<Array<Todo>>; private _todosObserver: any; private _dataStore: { todos: Array<Todo> }; constructor(private _http: Http) { // Create Observable Stream to output our data this.todos$ = new Observable(observer => this._todosObserver = observer).share(); this._dataStore = { todos: [] }; } }
EventEmitter.
@Injectable() class NameService { name: any; nameChange: EventEmitter = new EventEmitter(); constructor() { this.name = "Jack"; } change(){ this.name = "Jane"; this.nameChange.emit(this.name); } }
Dot Regola
export interface Info { name:string; } @Injectable() class NameService { info: Info = { name : "Jack" }; change(){ this.info.name = "Jane"; } }
La mia domanda è, tutte e tre le implementazioni in grado di lavorare al momento della sottoscrizione di guardare i cambiamenti nei dati. Come decidi quando usarne uno invece dell'altro e quali sono gli svantaggi di ciascuno.
Uno svantaggio di regola dot: è implicito e non esplicito. Finora, preferisco EventEmitter. –
cosa si intende per regola punto? –