pla*_*tod 1 ko.observablearray knockout.js
我将其放入 html tbody data-bind="foreach: contact"
和 Knockout 视图模型中
var viewModel = function () {
$this = this;
$this.contacts = ko.observableArray();
$this.nextPage = function () {
$.ajax({
url: "/api/AddressBook",
data: { pagesize: pageSize, currentpage: CPage },
type: "GET"
}).done(function (data) {
var myKoObservableArray = $this.contacts;
myKoObservableArray.push(null);
myKoObservableArray.push(data);
alert(data[0].Name);
});
}
$(document).ready(function () {
$.ajax({
url: "/api/AddressBook",
data: { pagesize: 10,currentpage: 0 },
type: "GET"
}).done(function (data) {
var vm = new viewModel();
vm.contacts(data);
ko.applyBindings(vm);
});
});
Run Code Online (Sandbox Code Playgroud)
第一次加载页面时,表格是通过 $(document).ready 的 ajax 调用填充的。当我从 UI 调用 nextPage 时,我进行 ajax 调用并alert(data[0].Name) 显示返回的数据数组中的第一个元素。是每次从服务器返回的不同集合。问题是,在第二次(和下一次)ajax 调用更改“联系人”可观察数组后,我在 UI 中的表没有更改。
小智 5
是的,您可以为数组调用 valueHasMutated 函数:
yourArray.valueHasMutated();
Run Code Online (Sandbox Code Playgroud)
如果首先没有帮助,您可以进行“脏”刷新:
self.refresh = function(){
var data = self.array().slice(0);
self.array([]);
self.array(data);
};
Run Code Online (Sandbox Code Playgroud)
这是工作小提琴:http://jsfiddle.net/vyshniakov/FuEy6/2/
| 归档时间: |
|
| 查看次数: |
5584 次 |
| 最近记录: |