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" 参数是什么以及它们的定义位置(如果有的话)。 (我已经从我的代码中删除了它们,因为我认为你根本不需要它们)。
我正在开发一个 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" 参数是什么以及它们的定义位置(如果有的话)。 (我已经从我的代码中删除了它们,因为我认为你根本不需要它们)。