如何在knockout js中将对象添加到observableArray?

时间:2013-05-23 10:54:15

标签: knockout.js

我有以下javascript对象,我将其用作枚举。

Object {Group1: 0, Group2: 1, Group3: 2, Group4: 3, Group5: 4}

我希望能够使用它创建复选框或基本上使用挖空模板下拉我需要这些值是可观察的。

我尝试将对象添加到可观察的数组中,但它不起作用。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以使用computed observable

function ViewModel(){
   var obj = {Group1: 0, Group2: 1, Group3: 2, Group4: 3, Group5: 4}; // Your object

   this.data = ko.computed(function(){
      // works on modern browsers (keys/map), old ones would need 
      // a shim or for in loop
      return Object.keys(obj).map(function(elem){ 
          return {val:elem+" -> "+obj[elem]};
       });
   });
}

ko.applyBindings(new ViewModel());

Fiddle