2013-10-09 110 views
0

我在我的HTML模板中有此功能。點擊時我想讓按鈕觸發showMore功能。AngularJS控制器中的簡單頁面計數器

<button ng-click="showMore(secondPage)">Show More</button> 

這是控制器。我不知道爲什麼$ scope.nextPage會在$ scope.secondPage處增加。我希望$scope.secondPage可以在第一次點擊時觸發Entry.query({page: 2}),然後在下一次點擊時觸發Entry.query({page: 3})。但現在它繼續發射第2頁。

@MainController = ["$scope", "Entry", ($scope, Entry) -> 
    $scope.entries = Entry.query({page: 1}) 

    $scope.nextPage = 2 
    $scope.secondPage = Entry.query({page: $scope.nextPage}) 

    $scope.showMore = (secondPage) -> 
    i = 0 
    while i < secondPage.length 
     $scope.entries.push(secondPage[i]) 
     i++ 
    $scope.nextPage++ 
    console.log("nextpage" + $scope.nextPage)  

] 

我正在使用coffeescript。我不完全理解爲什麼$ scope.secondPage中的頁碼不增加。

回答

1

我會怎麼做:

<button ng-click="showMore()">Show More</button> 

@MainController = ["$scope", "Entry", ($scope, Entry) -> 

    $scope.entries = [] 
    current_page = 1 

    $scope.showMore = -> 
    on_success = (entries)-> 
     $scope.entries = $scope.entries.concat entries 
     current_page = current_page + 1 
    Entry.query {page: current_page}, on_success 

    $scope.showMore() 
] 
+0

真棒!感謝你的回答。所以我不只是盲目地接受這個答案。我會盡力理解它。這裏的主要區別在於,您在$ scope.showMore函數內調用Entry.query,該函數將遞增的current_page與Entry.query {page:current_page}中的current_page參數保持在同一範圍內 –