我正在扩展 ko.observable 以将值写入本地存储。我想使用变量的名称作为键,所以:
self.newObservable = ko.observable();
self.newObservable.persistValue(25)
将使用“newObservable”键将值保留在 localStorage 中。有没有办法获取“newObservable”值?我尝试过使用 constructor.name 但它只返回变量的类型名称,即“String”或“Number”。
最佳答案
一种方法是为扩展的可观察对象提供对 this
的引用,例如
伪代码(我会在 observable 上使用 .extend() 来代替)
ViewModel = function() {
this.newObservable = ko.perstableObservable(this);
}
ko.perstableObservable = function(owner) {
this.owner = owner;
...
};
然后你可以迭代this
并找到可观察的引用
persistValue = function(value) {
var name = null;
for(var index in this.owner) {
if(this.owner[index] === this) {
name = index;
break;
}
}
...
}
关于javascript - 有什么方法可以获取 Knockout 可观察对象的名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121249/