2012-12-06 58 views
3

我有一個主要ko.observableArray,我已經創建了三個計算的可觀察數組,並將三個數組綁定到UI。代碼是computed observableArray不更新UI

self.ActiveVisitsList = ko.observableArray(); 

self.FVL = ko.computed(function() { 
    return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) { 
     return o.CsrID == 0; 
    }); 
}, self); 

self.MVL = ko.computed(function() { 
    return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) { 
     return o.CsrID == self.Me().ID; 
    }); 
}, self); 

self.OVL = ko.computed(function() 
{ 
    return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) { 
     return (o.CsrID != self.Me().ID && o.CsrID != 0); 
    }); 
}, self); 

過了一段時間,主要observableArray「ActiveVisitorsList」內的對象,從0它CsrID改變一些其他的價值,但綁定的用戶界面沒有反映。有什麼辦法可以手動重新綁定模型或其他什麼使用它的UI?

謝謝, Aadil。

回答

3

如果您將CsrID定義爲observable敲除會自動更新UI。在這你必須修改你的計算到這:

self.FVL = ko.computed(function() { 
    return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) { 
     return o.CsrID() == 0; 
    }); 
}, self); 

self.MVL = ko.computed(function() { 
    return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) { 
     return o.CsrID() == self.Me().ID; 
    }); 
}, self); 

self.OVL = ko.computed(function() 
{ 
    return ko.utils.arrayFilter(self.ActiveVisitsList(), function (o) { 
     return (o.CsrID() != self.Me().ID && o.CsrID != 0); 
    }); 
}, self); 
+0

謝謝Artem它的工作:-) – Liono