2011-12-19 25 views
0

我retreiving使用的getJSON用新的數據更新HTML Knockout.js

function getDaysMeals(dayid) 
    {   
     $.getJSON('jsonchoose/'+ dayid +'', function(data) { 
       var viewModel = { 
        dayMeals: ko.observableArray(data) 
       }; 
       ko.applyBindings(viewModel); 
      }); 

    } 

我已經點擊觸發事件,$ .getJson與「大衛·」來獲得新數據的新數據。

我正試圖用新數據更新表格 - 此刻它每次都向現有數據添加數據。

<table> 
<tbody data-bind="foreach: dayMeals"> 
    <tr> 
    <td data-bind="text: description" class="display-meal"></td> 
    <td data-bind="text: measure" class="display-meal"></td> 
    <td data-bind="text: total_cal" class="display-meal"></td> 
    </tr> 
</tbody> 

回答

5

在代碼applybindings是越來越調用每次調用的getJSON時間()。

您應該只調用一次applybindings。可能你可以將applyBindings()移動到初始化位置,或者有條件地調用它一次。

//Make necessary changes as per your requirement. 
var viewModel; 

function onLoad() 
{ 
viewModel = { dayMeals: ko.observableArray([]) }; 
ko.applyBindings(viewModel); 
} 

function getDaysMeals(dayid) 
{   
    $.getJSON('jsonchoose/'+ dayid +'', function(data) { 
    // This is just for reference. Minor change may be required. 
    viewModel.dayMeals(data); 
    }); 
} 
+0

這解決了它 - 現在它看起來顯然是明顯的我!謝謝 – rebelbass 2011-12-19 04:24:24

+0

也爲我工作,非常感謝.. – DharaPPatel 2014-02-04 05:00:52