【发布时间】:2017-03-13 17:20:38
【问题描述】:
我想在没有视图模型的情况下使用淘汰赛 observables。我只是想使用一个 observableArray 作为 DevExtreme 数据网格的数据源。所以现在,我的想法相当简单:我只是将一个变量 (shuttleList) 声明为空的 ko.observableArray。后来,我通过一个 ajax 请求来填充它。我的网格设置为该变量作为数据源。
但是,当我更改数组时,什么也没有发生。不过,我必须使用其选项方法手动替换网格的数据源。我做错了什么?
shuttleList = ko.observableArray([]);
$.getJSON('http://someCall?ID=' + id, function (e) {
shuttleList(e.tourenList.find(x => x.title == 'Base').shuttleList);
});
var grid = $("#gridContainer").dxDataGrid({
dataSource: shuttleList,
…
});
我知道这不是淘汰赛应该使用的方式,但我能否以某种方式自动完成这项工作 - 无需在shuttleList.subscribe 事件中进行一些手动网格刷新?
顺便说一句,仅仅调用网格的 refresh()/repaint() 方法也无济于事。我还没有找到重置其 dataSource 选项的方法。
grid.option('dataSource', shuttleList);
非常感谢您的帮助!
【问题讨论】:
标签: javascript knockout.js devextreme