我在构造函数中使用Observable.from()创建了数组流,并在构造函数中订阅了它,数组正在获取更新但是订阅方法不起作用我认为,我没有得到console.log for数据,这是代码
@Component({
selector: 'my-app',
template: `
<input type="text" required
[(ngModel)]="inputValue" name="inputValue" >
<button (click)="addto()">submit</button>
})
这是课程
export class first{
proxySubject;
inputValue: string;
array = [];
constructor(){
this.proxySubject = Observable.from(this.array)
this.proxySubject.subscribe(function(data){
console.log(data))
}
addto(){
this.array.push(this.inputValue)
}
}
答案 0 :(得分:3)
Observable.from()
只检查一次提到的数组。您正在寻找的是一个可观察的阵列。其中一种方法是创建自定义addItem()
函数,该函数将.push()
新项目添加到数组并调用mySubject.next(myArray)
。通过此设置,您可以订阅mySubject
,以便在阵列内容发生变化时收到通知。
编辑:
myArray = [];
mySubject = new BehaviourSubject(myArray); // store last version for new subscribtions
addItem(item) {
myArray.push(item);
mySubject.next(myArray)
}
mySubject.subscribe(arr => console.log(arr))
编辑2 - 观察员:
// doesnt really help anything
let myObserverRefference;
observable = Observable.create(function (observer) {
myObserverRefference = observer;
});
addItem() {
myObserverRefference.next(myArray);
}
答案 1 :(得分:0)
在knockout.js中没有任何价值,这是核心功能,并且通常只有几行代码,所有的数组/对象的铃声和口哨都会改变你想要的事件。为什么事情往往会因为这些琐碎的任务而变得过于复杂?我没有得到它。