Я пытаюсь реализовать решение, которое я нашел здесь, в Stack Overflow, но столкнувшись с трудностями. У меня есть служба и компонент, и что-то не так.Угловая 2 - Реализация общих служб
Ошибка: TypeError: Невозможно прочитать свойство 'next' of undefined Что может быть неправильным или отсутствующим? Нет ли чего-то большего? Также в моем окне терминала я получил эту ошибку, но на моей консоли браузера она не отражена: ошибка TS1005: '=>'.
import {Injectable} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import {Observer} from 'rxjs/Observer';
@Injectable()
export class GlobalService {
data: any;
dataChange: Observable<any>;
constructor() {
this.dataChange = new Observable((observer:Observer) { // this is the TS1005 error.
this.dataChangeObserver = observer;
});
}
setData(data:any) {
this.data = data;
this.dataChangeObserver.next(this.data); //Line of the critical error (next)
}
}
и это компонент, который потребляют услуги .... (я размещу только соответствующие строки)
import {GlobalService} from "../../../global.service";
import(...)
@Component({
providers: [GlobalService],
template: `<p>{{myData}}<>/p><span (click)="addTag(1, 'test')">Add more</span>`
});
export class MyComponent {
addTag (id,desc){
this._global.setData({ attr: 'some value' });
}
}
constructor(private _global: GlobalService) {
}
Итак, что это неправильно и/или отсутствует, чтобы сделать этот простой компонент отображения результаты и добавить новые элементы и быть заметными? Раньше я никогда не применял наблюдаемые.
Hi @micronyks! можете ли вы это подтвердить? dataChangeObserver: EventEmitter = new EventEmitter(); (Общий тип «EventEmitter» требует 1 аргумент типа .______ и this._global.setData ({attr: 'some value'}) .subscribe ((res) => {this.myData = res}, .err => console.log (err), .() => console.log ('recived data') ); -----> Свойство 'myData' не существует и выражение Argument ожидается на точках, которые соединяет err и() –
его снова трудно читать! ;-( – micronyks
Ой может быть '. (dot)' может быть проблемой. wait a min. Я обновляю ответ. – micronyks