javascript - Knockout.js ko.observableArray() 无法正常工作
问题描述
我不确定为什么这不起作用有人可以帮忙吗?
我有这个简单的对象数组:
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) [{…}, {…}, {…}]
任何帮助请!欣赏。
解决方案
似乎在初始化对象时,您将其值分配给另一个键。在您给定的代码段中,this
指的是myItems
键不存在并返回的全局对象undefined
。尝试var a = {b: 1, c: this.b}
在您的浏览器中进行操作。这将返回{ b: 1, c: undefined }
。
但我的问题是,为什么要myItems
分开保存,又不想将它的值直接传递给ko.observableArray
函数呢?因为以后你只想处理allItems
它是可观察的,而不是myItems
.
推荐阅读
- system-verilog - 是否可以在模块的端口声明中使用用“typedef enum”定义的类型?
- java - 如何使用 Assert.assertEquals() 测试单链表
- regex - 仅匹配单个正斜杠 (/)
- java - 照片库中无法选择的图像
- javascript - 动态波浪路径/边界
- c++ - 当我将客户端连接到服务器而不是阻塞并等待消息时,Recv() 返回 SOCKET_ERROR
- google-chrome-devtools - Chrome devtools - “分离的 dom 树”去了哪里?
- processing - 不能让碰撞适用于类似马里奥的游戏
- python - 将 POST 方法从 Flask 更改为 Django
- android-layout - Android如何更改文本输入背景图片