2

我有一个模型,我用来自服务器的数据填充。问题是,当最初填充该数据时,我的订阅正在触发,这是我不想要的。我只希望在用户与 UI 交互时触发订阅。

function ViewModel() {
    var self = this;

    //Populate the object.
    self.request = new Request(data);
    //Subscribe to one of the "properties" so that I can do stuff when the value changes.
    self.request.selectedId.subscribe(function(newValue) {
        //This is firing before the user interacts with the UI.
    });
}
4

1 回答 1

2

通常你不需要手动订阅,但如果你想保留它们,因为你只需要做一次,你总是可以使用触发一次的标志。

self.initialLoad = true;
self.request.selectedId.subscribe(function(newValue) {
    if(self.initialLoad) self.initialLoad = false
    else {
    //This is firing before the user interacts with the UI.
    }
});
于 2013-01-08T22:54:44.367 回答