有什么方法可以找出称为手动订阅的可观察属性的名称吗?
淘汰赛中的回调签名是,.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);
});
}
}
};