2013-10-09 3 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

Awesome! Спасибо за ответ. Поэтому я не просто слепо принимаю этот ответ. Я постараюсь понять это. Основное различие здесь заключается в том, что вы вызываете Entry.query внутри функции $ scope.showMore, которая сохраняет увеличенную текущую страницу в той же области, что и аргумент current_page в Entry.query {page: current_page} –

Смежные вопросы