有沒有什麼辦法可以找到調用手動訂閱的observable屬性的名稱?如何檢測在手動訂閱中調用的observable屬性
在淘汰賽中的回調簽名是.subscribe(function(newValue) { ... })
,但由於我訂閱了一個對象的所有可觀察屬性,我想要有這樣的簽名:function(newValue, propertyName)
(可能還有一箇舊值...)。
下面的代碼提取顯示了我試圖在屬性周圍獲得一個閉包,但它總是在最後一個屬性被掃描時出現。
我怎樣才能找出哪個屬性發生了變化?
this.Data = ko.mapping.fromJS(dataFromServer);
...
ScrollDataItem.prototype.GetInformedOnChange = function() {
var self = this;
for(var prop in this.Data) {
if(self.Data.hasOwnProperty(prop) && prop != "__ko_mapping__") {
var closureProp = prop;
self.Data[prop].subscribe(function (newValue) {
alert("New value is: " + newValue);
alert("Property that called: " + closureProp);
});
}
}
};
晶圓廠 - 這是伎倆!謝謝 – Marcel
如果是這樣,請將此標記爲正確答案? – CodeThug