2011-12-19 69 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