虽然之前我已经看到过这种错误的各种版本,但我还没有看到一个涉及Durandal的版本,这是我认为其中一些问题的来源。
我有一个KendoUI网格,其中显示了一些费用,我使用Durandal消息框添加新费用,并且想法是在提交新费用时,网格应该刷新。
现在,有几个人提到了以下“解决方案”:
var grid = $("#grid").data("kendoGrid");
grid.dataSource.read();
不幸的是,这似乎不起作用。当我使用弹出窗口时,因为我正在使用Durandal,因为Durandal的承诺方法,我的代码刷新网格仍然在网格所在的页面内。
app.showDialog('viewmodels/empresas/egreso/addEgreso').then(function () {
//the method called that uses the code above to attempt to refresh the grid
refreshGrid();
});
每次到达refreshGrid方法时,都会返回错误,说明未定义“网格”。在将新项添加到数据库后,如何到达grid属性以刷新它?
非常感谢任何帮助。
答案 0 :(得分:3)
我建议将网格分配给网格属性对象中的observable:
观点:
div data-bind =“kendoGrid:myGrid”> /格
viewmodel:
var myGridObservable = ko.observable();
var myGrid = { widget:myGridObservable, 数据:null, dataSource:{...
然后将myGridObservable传递给您的视图,您可以执行以下操作:
myGrid()dataSource.read();