我刚接触KO,在使用计算值时遇到了麻烦。我有一个由许多对象组成的视图模型,因为我在数据库中有许多不同的表,我要从这些表中检索数据。这是我如何设置VM的一个示例。请随意批评我在这里做错的任何事情(尽管它确实可以在计算值之外工作):
var viewModel = function(object1, object2...) {
var self = this;
var activeProductCodes = ['AB-1', 'AB-2', 'AB-3'];
self.myFirstObject = ko.observable({
field1: ko.observable(object1.field1),
field2: ko.observable(object1.field2),
field3: ko.observable(object1.field3)
});
self.mySecondObject = ko.observable({
productCode: ko.observable(object2.productCode),
isActiveProduct: ko.computed(function() {
return self.activeProductCodes.indexOf(productCode) !== -1 ? true : false;
}, self)
});
}isActiveProduct无法工作,因为它不知道productCode是什么。我试过做this.productCode,self.productCode,self.mySecondObject().productCode,它们似乎都不起作用。是否可以访问该值?我的整个VM设置中是否存在导致此操作失败的错误?
谢谢
史蒂夫
更新:我现在不会让对象可观察,也不会这样声明我的VM:
var viewModel = function(object1, object2...) {
var self = this;
var activeProductCodes = ['AB-1', 'AB-2', 'AB-3'];
self.myFirstObject = {
field1: ko.observable(object1.field1),
field2: ko.observable(object1.field2),
field3: ko.observable(object1.field3)
}
self.mySecondObject = {
productCode: ko.observable(object2.productCode),
isActiveProduct: ko.computed(function() {
return self.activeProductCodes.indexOf(productCode) !== -1 ? true : false;
}, self)
}
}https://stackoverflow.com/questions/41608717
复制相似问题