ng-click 增加限制只工作一次,然后在向 ng-repeat 添加一行后停止工作

ng-click increase limit only works once and then stops working after adding one row to ng-repeat

我正在开发一个 ng-repeat 增加 limitTo 按钮。我的问题是它在我的 Feed 中添加一行时工作一次,但随后似乎恢复到原来的 limitTo 然后停止工作。

app.js 文件

angular.module('app').controller('MyController', function($scope, $http) {

$http.get('externaljsonfeed').success(function(data) {
    // $scope.limit = 6;
    // $scope.increasePosts = function() {
    //  $scope.limit += 3 ;
    // }
    $scope.posts = data;

    var limitStep = 5;
    $scope.limit = limitStep;
    $scope.incrementLimit = function(add) {
        $scope.limit += limitStep;
    };
    $scope.decrementLimit = function(remove) {
        $scope.limit -= limitStep;
    };

});

});

html输出提要

<html lang="en" ng-app="app">  
<body ng-controller="MyController">     
    <div class="row" flex-row>
        <div class="small-up-1 medium-up-2 large-up-3">
            <div class="column" ng-repeat="posts in posts | filter:search | limitTo: limit">
                <div class="card">
                    <div class="image">
                        <a href="{{ posts.url }}" target="_blank"><img
                    src="{{ posts.image_thumbnail }}" alt="{{ posts.title }}" /></a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

然后按钮增加limitTo

<button class="load-more-btn" ng-click="incrementLimit(add)">Discover More</button>

编辑:

它现在工作正常。

现在我面前没有可用的示例,但是一旦函数退出,您在成功处理程序中定义的所有变量将不再存在。

尤其是这个可能会引起问题:

var limitStep = 5;

沿着这些方向尝试更多的东西,分离函数定义,它们不需要在成功处理程序中:

angular.module('app').controller('MyController', function($scope, $http) {

  $scope.limitStep = 5;
  $scope.limit = $scope.limitStep;
  $scope.incrementLimit = function() {
        $scope.limit += $scope.limitStep;
  };
  $scope.decrementLimit = function() {
        $scope.limit -= $scope.limitStep;
  };

  $http.get('externaljsonfeed').success(function(data) {
    $scope.posts = data;
  });
}

还要考虑 incrementLimit 和 decrementLimit 函数中的 "add" 和 "remove" 参数是什么以及它们的定义位置(如果有的话)。 (我已经从我的代码中删除了它们,因为我认为你根本不需要它们)。