我需要修改此分页扩展器:http://jsfiddle.net/zeelux/B4vN2/以接受currentPage
变量,而不是硬编码。
pageSize
作为参数传递,但我不熟悉如何添加其他参数的语法。
e.g。
ko.extenders.paging = function(target, pageSize, currentPage) {
...
}
和
var ViewModel = function() {
this.items = ko.observableArray([...]).extend({
paging: 5, 2
});
};
无效。
答案 0 :(得分:2)
您不能向扩展器功能添加多个参数,但可以传入一个对象作为扩展器的第二个参数,其中包含两个配置选项:
ko.extenders.paging = function(target, config) {
// default pageSize to 10
var _pageSize = ko.observable(config.pageSize || 10),
// default current page to 1
_currentPage = ko.observable(config.currentPage || 1);
//...
}
然后,您可以在使用扩展器时传入具有正确属性的对象:
var ViewModel = function() {
this.items = ko.observableArray([...]).extend({
paging: { pageSize: 5, currentPage : 2 }
});
};
演示JSFiddle。
注意:您可以使扩展程序更智能:根据config
参数的类型,如果是数字,则将其用作pagesize
等。