如何声明一个observable以及如何在angular2中添加数据?
我有5个小时试图找出如何做到这一点。
我试过这个
this.products : Observable<array>;
var object = {"item":item};
this.products.subscribe(object)
我尝试的一切都给我一个错误
我想使用它,因为我有一个经常更改的对象数组,并且在模板中ngFor不会更改值。
有什么帮助吗?
http://pastebin.com/1cFXJHHk 这是我尝试做的事情
答案 0 :(得分:4)
@pixelbits提供了一个很好的答案,描述了使用原始可观察量的方法。
但我认为你误解了什么是可观察和反应式编程。你可以看看这个伟大的介绍开始:
obersables的subscribe
方法允许注册通知的回调:
当然,您可以利用事件在列表中添加元素,但我不确定它是您的用例:
var someList = [];
let observable = (...)
observable.subscribe(data => {
someList.push(data);
});
这对于基于事件的工具/技术(如WebSockets,Firebase等)特别有用。上面的可观察对象将与它们相关联。这个答案可以为您提供有关如何使用Firebase实现此功能的更多详细信息:
答案 1 :(得分:2)
如果要创建Observable(冷),可以使用create方法:
myEvent:Rx.Observable<{item:Item}>;
myObserver: Rx.Observer<{item:Item}>;
constructor() {
this.myEvent = Rx.Observable.create(o=>this.myObserver = o);
}
someEvent() {
// do something
var $event = {item:new Item()};
// emit the event object when something interesting happens
if(this.myObserver)
this.myObserver.emit($event);
}