我不确定为什么这对任何人都没有帮助?
我有这个简单的对象数组:
myItems: [
{value: 0, text: 'a'},
{value: 1, text: 'b'},
{value: 2, text: 'c'}
],
allItems: ko.observableArray(this.myItems),
console.log(this.allItems()); THIS DOES NOT WORK???
以上不起作用?
现在轰鸣声只是硬编码的myItems数组:
allItems: ko.observableArray([
{value: 0, text: 'a'},
{value: 1, text: 'b'},
{value: 2, text: 'c'}
]),
console.log(this.allItems()); //THIS NOW WORKS
有什么区别,因为当我记录两者时我都没有看到:
console.log('this is al allItems: '+this.allItems())
console.log('this is my myItems: '+myItems());
this is al allItems: (3) [{…}, {…}, {…}]
this is my myItems: (3) [{…}, {…}, {…}]
任何帮助请!欣赏。
答案 0 :(得分:0)
似乎在初始化对象时,您正在为其分配值,这是另一个键的关键之一。在您的指定代码段中,this
指的是myItems
键不存在且返回undefined
的全局对象。
尝试在浏览器中执行var a = {b: 1, c: this.b}
。这将返回{ b: 1, c: undefined }
。
但我的问题是,您为什么要单独保留myItems
并且不想将其值直接传递给ko.observableArray
函数?
因为以后你只想处理allItems
因为它是可观察的,而不是myItems
。