如何使用KnockoutJS更新JavaScript生成的小部件?

时间:2015-07-20 11:55:21

标签: javascript knockout.js vis.js

我有其中一个时间轴小工具: http://visjs.org/examples/timeline/interaction/eventListeners.html

源数据如下所示:

var items = new vis.DataSet([
  {id: 1, content: 'item 1', start: '2013-04-20'},
  {id: 2, content: 'item 2', start: '2013-04-14'},
  {id: 3, content: 'item 3', start: '2013-04-18'},
  {id: 4, content: 'item 4', start: '2013-04-16', end: '2013-04-19'},
  {id: 5, content: 'item 5', start: '2013-04-25'},
  {id: 6, content: 'item 6', start: '2013-04-27'}
]);

当我将Knockout用于页面上的其他元素时,如何像这样更新?

我应该忽略Knockout并在收到json时用Javascript更新数组吗?

像这样:

function viewModel() {

    this.price = ko.observable(0);

    this.loadViewModel = function() {
        $.getJSON('/pagedata', function(data) {

            updateTimeline(data.timeline);

            /* update rest of view model */
            this.price(data.price);
        });

    }
}

或者有更合理的方法来做到这一点。

1 个答案:

答案 0 :(得分:-1)

Knockout用于将模型连接到视图。时间线小部件内置了这样的连接 - 您相应地更新数据和视图更新,对吧? - 所以你没有理由让我看到它带来淘汰赛。