2012-10-27 28 views
0

我有這個基本的淘汰賽腳本設置(仍在學習)

$.getJSON(clientUrl + "/list/" + 1, function (data) { 

var viewModel = { 
    clients: ko.observableArray(data) 
}; 

ko.applyBindings(viewModel); 
}); 

第一個參數「lucidServer.getClients(1)」使至呼叫此Ajax請求:

var getClients = function (id) { 
    return $.ajax(clientUrl + "/list/" + id) 
}; 

現在我正在回JSON,但它似乎並沒有被正確綁定模板。這裏是JSON:

0: {iD:1, userId:1, name:CompanySoft, LLC.,…} 
1: {iD:2, userId:1, name:Widget Factory,…} 
2: {iD:3, userId:1, name:Jim's Consulting,…} 

和模板是在這裏:

<div id="clientListOutput"> 
      <ul "template: { foreach: clients }"> 
       <li><span data-bind"text: name"></span></li> 
      </ul> 
     </div> 
+0

你確定這就是你想要什麼?做一個AJAX請求,然後立即做另一個請求? – Prinzhorn

+0

也許不是,但我不確定這樣做的最佳做法。有什麼建議麼? – ledgeJumper

+2

愛你的頭像!剛剛意識到我有多想念塞爾達(原創):p – jAndy

回答

1

您的標記錯別字很多。

的HTML應該是這樣的:

<div id="clientListOutput"> 
      <ul data-bind="foreach: clients"> 
       <li><span data-bind="text: name"></span></li> 
      </ul> 
    </div> 

當你有你的標記標籤ul裏面你不需要使用template結合。只需使用foreach,Knockout將完成迭代每個客戶端併爲每個客戶端渲染li的工作。

這裏是工作提琴:http://jsfiddle.net/jearles/6XhM4/