控制器中的AngularJS简单页面计数器

时间:2013-10-09 20:17:27

标签: ruby-on-rails angularjs coffeescript

我的html模板中有这个。我希望按钮在单击时触发showMore函数。

<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 个答案:

答案 0 :(得分: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()
]