【发布时间】:2013-09-27 19:30:09
【问题描述】:
当我第一次调用下面的代码时,它运行良好,但是在第二次调用中,gridviewmodel 变得混乱,所有数据都变得多余
$.ajax({
url: 'rest service uri',
type: 'GET',
data: parameters,
dataType: 'json',
crossDomain: true,
success: function (data) {
function gridviewModel() {
var self = this;
self.items = ko.mapping.fromJS(data);
self.columns = [
new column("Name", "name", "Asc"),
new column("URL", "name", "Asc"),
new column("Embargo Date", "name", "Asc"),
new column("Status", "name", "Asc"),
new column("Reviewer Name", "name", "Asc"),
new column("Approver Name", "name", "Asc")
];
};
ko.applyBindings(new gridviewModel());
}
我尝试使用 removeAll() 清除可观察数组,但它对我不起作用。
有什么想法吗?
只是为了将来任何人都可能面临这个问题,我设法通过在 Knockout 映射插件中调用 ko.mapping.fromJS(data, gridviewModel.items) 来修复它 完整代码是
var gridviewModel = {
items: ko.mapping.fromJS([]),
columns: [
new column("Name", "name", "Asc"),
new column("URL", "name", "Asc"),
new column("Embargo Date", "name", "Asc"),
new column("Status", "name", "Asc"),
new column("Reviewer Name", "name", "Asc"),
new column("Approver Name", "name", "Asc")
]
};
$(function () {
ko.applyBindings(gridviewModel, document.getElementById("wip"));
});
希望这可以解决其他问题。
【问题讨论】:
标签: json asp.net-mvc-4 knockout.js knockout-mapping-plugin knockout-mvc