2012-08-29 87 views
0

我无法理解映射如何与knockoutjs一起工作。Knockoutjs映射 - 无法正常工作

由头:

我有一个API,返回JSON

我想是JSON到列表映射在我看来

的javascript:

var data = JSON.stringify([ 
     { 
      "text": "this be some text" 
     }, 
     { 
      "text": "some more text here" 
     } 
    ]); 

    var viewModel = ko.mapping.fromJSON(data); 

    var updateData = function(){ 
     var newData = JSON.stringify([ 
      { 
       "text": "this be some asdfasdfasdf" 
      }, 
      { 
       "text": "some more asdfasdfdfdf here" 
      } 
     ]); 

     ko.mapping.fromJSON(newData, viewModel); 
    } 

    ko.applyBindings(viewModel); 

数据和newData是相同的格式,我会从API调用中获取我的数据。 (只是阵列的对象)

我怎样才能输出这些数据?

<ul data-bind="foreach: whatgoeshere?"> 
    <li data-bind="text: text"></li> 
</ul> 

谢谢你给我解释这个魔术是如何工作的;) 有一个好的一天

回答

0

起初作为最后一个希望对于包含JSON字符串你应该使用fromJS代替fromJSON。

另一件事是,你应该修改您的视图模型是这样的:

{ arr: [ { name:'text' }, ... ] } 

和类型ARR在你的foreach约束力。

如果你不想修改模型,那么你可以通过$根到您的foreach指向在ko.applyBindings使用模型

+0

谢谢,$根的伎俩。对不起,我的代码示例不正确。我已经更新了它,所以data和newData现在是JSON字符串;) –