2012-08-29 83 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字符串;) –