我正在使用knockout创建一个Pager控件。我有一个viewModel(PaginatorViewModel),它有“currentPageIndex”,“itemsPerPage”,“totalRecords”等属性。 在每个页面中,我有两个分页控件,一个在TOP上,另一个在页面底部。
在某些情况下,我有标签,在每个标签中我都有两个分页控件(TOP和Bottom)。
当我在Tab1中并移动到第2页(currentPageIndex = 2)时,Tab2中的分页控件也将currentPageIndex显示为2.
我想在所有选项卡中使用PaginatorViewModel,但是想要维护多个实例...每个选项卡都有一个实例。
我怎样才能做到这一点。
这是我的ViewModel,
var CustomPaginator = {
//The current page index of the post being displayed.
currentPageIndex: ko.observable(1),
//specifies the page options
pageOptions : ko.observableArray([25, 50, 100, 200]),
//specifies the PageOptions will be shown or not.
showOptions : ko.observable(true),
//The maximum number of topics displayed per page.
itemsPerPage : ko.observable(25),
//Specifies the total no of records
totalRecords : ko.observable(1),
isVisible : ko.observable(false),
//pageIndex is bounded to the text box, and the CurrentPageIndex contains the actual value.
// this is to avoid the notifying the subscribers when the user enters the out of range values
// like 0,and N , where N > no of pages
pageIndex : ko.observable(1)
};
我如何为此创建实例。
谢谢, 拉梅什
答案 0 :(得分:3)
为每个分页器创建一个viewmodel,然后将每个分页器绑定到您希望在其中使用的页面元素:
var page1 = new CustomPaginator();
ko.applyBindings(page1, $('#page1')[0]);
为每个人做这个。您也可以将相同的视图模型绑定到页面的不同部分,如果这是您想要做的事情。
您需要更改定义视图模型的方式,以便可以创建它的新实例:
var CustomPaginator = function()
{
//your view model properies here
}