好吧标题令人困惑所以我会给你我的代码来理解我的问题
在淘汰教程中他们使用函数而不是JSON我的意思是这样的:
data = [
{
id: 1,
name: 'somehing'
},{
id: 2,
name: 'somehing else'
},
]
这是我的问题
var ViewModel = function () {
var self = this;
self.dataList = ko.observableArray(data);
console.log(ViewModel.dataList);
};
在其他网站上,github中的大多数教程和项目都使用JSON
var ViewModel = {
dataList : ko.observableArray(data),
init: function() {
console.log(ViewModel.dataList);
}
};
这一行
dataList : ko.observableArray(data),
当我尝试调用 dataList 时,它会返回此
function d(){if(0<arguments.length)return d.Wa(c,arguments[0])&&(d.X(),c=arguments[0],d.W()),this;a.k.Ob(d);return c}
如果我试图获取其值,控制台会告诉我 dataList 未定义
但如果我将数据直接传递给 dataList (这不再是observableArray),它会在控制台中为我提供完整的对象值
dataList : dataList,
控制台中的返回值
[Object, Object]
如何从 init 函数调用 ko.observableArray ?
我想像这样关注网络上的教程,但我的问题是一样的。
http://opensoul.org/2011/06/23/live-search-with-knockoutjs/
实际上,不仅 ko.observableArray 数组我也无法调用 ko.observable 对象
答案 0 :(得分:3)
当我尝试调用dataList时,它返回
您的代码没有调用 ViewModel.dataList
,它只是访问它,它为您提供了功能(记住observables是函数)。要致电,请添加()
:
console.log(ViewModel.dataList());
// Note ----------------------^^