Angular Rxjs:为什么这个数组流不接收新值

Angular Rxjs:为什么这个数组流不接收新值,angular,system.reactive,rxjs,rxjs5,subject,Angular,System.reactive,Rxjs,Rxjs5,Subject,我在构造函数中使用Observable.from()创建了数组流,并在构造函数中订阅了它,数组正在更新,但订阅方法不起作用。我想,我没有获得数据的console.log,下面是代码 @Component({ selector: 'my-app', template: ` <input type="text" required [(ngModel)]="inputValue" name="inputValue" >

我在构造函数中使用Observable.from()创建了数组流,并在构造函数中订阅了它,数组正在更新,但订阅方法不起作用。我想,我没有获得数据的console.log,下面是代码

@Component({
    selector: 'my-app',
    template: `
        <input type="text" required 
        [(ngModel)]="inputValue" name="inputValue" >  
        <button (click)="addto()">submit</button>  
     })
Observable.from()
每次创建给定Observable的新订阅时,只检查一次提到的数组。你要找的是一个可观察的数组。其中一种方法是创建自定义的
addItem()
函数,该函数将
.push()
新项推送到数组中,并调用
mySubject.next(myArray)
。通过此设置,您可以订阅
mySubject
,以便在数组内容发生更改时获得通知

编辑:

编辑2-观察者:

// doesnt really help anything
let myObserverRefference;

observable = Observable.create(function (observer) {
  myObserverRefference = observer;
});

addItem() {
   myObserverRefference.next(myArray);
}

在knockout.js中没有什么价值这是核心功能,通常只有几行代码,包含您想要的所有数组/对象更改事件。为什么对于这些琐碎的任务,事情往往会变得过于复杂,我不明白。

这不会获取新的数组值,当您调用“from”时,它会获取数组中的值并立即将其转换为流。您可能希望创建一个“ReplaySubject”,并将数组值推送到构造函数中的subject,然后在addto()中推送到新值。什么也没有发生。我将proxySubject转换为ReplaySubject,并使用addto方法将新值推送到数组,让我们暂时忘记下一个方法的主题这永远不会自动发生你必须通知
subject
发出下一个值或编写自定义的
observer
,如
newobserable(observer=>{/*…*/observer.next(myArray);})
每次使用addto方法中的push方法更改数组时,observable都不会检测到它。从(),否,您必须手动通知
主题
或自定义
观察者
。这不是自动的。你能给我举个例子吗
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))
// doesnt really help anything
let myObserverRefference;

observable = Observable.create(function (observer) {
  myObserverRefference = observer;
});

addItem() {
   myObserverRefference.next(myArray);
}