请帮忙。我目前正在开发一个使用durandal,breeze,requirejs和KNOCKOUT的单页应用程序。我现在遇到的挑战是如何更新我从挖空网格中选择的现有记录。我一直在阅读 breeze 的文档和样本,但所有这些似乎都是首先作为新实体创建的,然后进行了更新。
没有你这边的任何代码,看看这个。
关于bree,你需要记住的是它跟踪对实体的所有更改,所以基本上一旦你从breeze加载了数据,JavaScript中所做的所有更改都将被跟踪,所以如果你对数据进行任何更改并调用breeze的保存方法,它将检查数据是否有变化,如果有任何更改,它将调用服务器端保存方法。
var ViewModel = function(){
var self = this;
self.data = ko.observableArray(); //This data is loaded using breeze
self.edit = function(item){
//This needs to open the item in a modal or something where you can change the values, I usually do these things in a modal, can help more if I see your code.
};
self.save = function(){
//Call breeze save method
};
}
ko.applyBindings(new ViewModel());
因此,如果您的 HTML 看起来像这样:
<table data-bind="foreach: data">
<tr data-bind="click: $root.edit">
<td> Some data binding here </td>
</tr>
</table>
完成编辑后调用$root.save
函数