1

我正在使用淘汰赛创建一个寻呼机控件。我有一个 viewModel(PaginatorViewModel),它具有“currentPageIndex”、“itemsPerPage”、“totalRecords”等属性。在每个页面中,我有两个分页控件,一个在顶部,另一个在页面底部。

在某些情况下,我有标签,在每个标签中我有两个分页控件(顶部和底部)。

当我在 Tab1 并移动到第 2 页(currentPageIndex=2)时,Tab2 中的分页控件也将 currentPageIndex 显示为 2。

我想在所有选项卡中使用 PaginatorViewModel,但想维护多个实例,即每个选项卡一个实例。

我怎样才能做到这一点。

这是我的视图模型,

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)
  };

我如何为此创建一个实例。

谢谢,拉梅什

4

1 回答 1

3

为每个分页器创建一个视图模型,然后将每个视图模型绑定到您希望在其中使用它的页面元素:

var page1 = new CustomPaginator();
ko.applyBindings(page1, $('#page1')[0]);

对每个人都这样做。如果您想这样做,您还可以将相同的视图模型绑定到页面的不同部分。

您将需要更改定义视图模型的方式,以便可以创建它的新实例:

var CustomPaginator = function()
{
    //your view model properies here
} 
于 2013-04-16T18:14:35.200 回答