我似乎无法引用ko.computed
以下是jsFiddle
中的示例以下是代码示例:
var fruits = ko.observableArray([{
cart: ko.observable(1),
fruit: 'Apple',
carts: ko.computed(function () {
var tempCartList = [];
if ( !! this.cart) tempCartList.push(this.cart());
else console.log("Couldnot reference");
return tempCartList;
},this)
}]);
答案 0 :(得分:1)
我不知道你的代码究竟在做什么,但你可以使用函数来创建一个fruit对象的实例。
var Fruit = function(opts){
this.cart = ko.observable(opts.cart || 1);
this.fruit = opts.fruit || '';
this.carts = ko.computed(function(){
// some logic here
})
}
然后在你的fruit observable数组中创建一个Fruit对象的新实例:
var fruits = ko.observableArray([new Fruit({fruit: 'Apple'})]);
希望它会有所帮助。
答案 1 :(得分:0)
可能是一些范围问题。我在一个单独的构造函数中移动了observable数组中的对象,它工作正常:http://jsfiddle.net/saP6v/
var crt = function(){
var self = this;
self.cart = ko.observable(1),
self.fruit = 'Apple',
self.carts = ko.computed(function () {
var tempCartList = [];
console.log(this);
console.log(this.cart);
if ( this.cart) tempCartList.push(this.cart());
else console.log("Couldnot reference");
return tempCartList;
},self)
}
var fruits = ko.observableArray([new crt()]);