将Array转换为Observable数组

时间:2014-08-30 12:27:59

标签: arrays knockout.js observablecollection observable ko.observablearray

我有一个array来自模型视图,我希望将名为FilterListOptions的数组转换为{ {1}}?我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

如果你想拥有完整的绑定,Knockout模型应该有observableArray(不是数组) 但是如果你想要有限的绑定,你可以使用简单的对象:

来自价值约束文件:
如果使用value将表单元素链接到不可观察的属性(例如,普通的旧字符串或任意JavaScript表达式),KO将执行以下操作:

  • 如果您引用一个简单的属性,即它只是一个常规属性 在视图模型上的属性,KO将设置表单元素的初始值 state到属性值,并且在编辑表单元素时,KO 会将更改写回您的财产。它无法检测到何时 属性发生了变化(因为它不可观察),所以这只是一个 单向绑定。

    如果您引用的不是简单属性,例如, 函数调用或比较操作的结果,KO将设置 表单元素的初始状态到该值,但它不能 在用户编辑表单元素时写回任何更改。在 这种情况下,它只是一次性的值设置器,而不是正在进行的绑定 这会对变化作出反应。

要通过可观察数组简单地包装数组,请按以下方式进行:

var some_object = { myarray: [1,2,3] };
some_object.myarray = ko.observableArray(some_object.myarray);