我有点卡在一个项目上(AngularJS很新)。现在,我的HTML是:
<button ng-click="decrement()" class="min">-</button>
<input ng-model="counter" type="text" size="1">
<button ng-click="increment()" class="plus">+</button>
和我的(工作)JS:
ngToggle.controller('ExampleController', ['$scope', function($scope) {
$scope.image=1;
$scope.decrement=function() {
if ($scope.counter>1) {$scope.counter--;}
};
$scope.increment=function() {
$scope.counter++;
}
}]);
这会创建一个带+和 - 按钮的简单计数器。我现在有需要多个独立计数器的情况。在我的脑海中,计数部分可以通过服务轻松处理,所以我不必重复自己。但这里的正确方法是什么?
答案 0 :(得分:0)
显然你的问题是非常开放的,并且会有很多答案可以帮助你。我已经模拟了一个快速示例,其中一个服务处理多个计数器的递增和递减 - 它可能不适合您的确切场景,但希望它将演示如何使用 服务。
http://jsfiddle.net/Lvc0u55v/3763
function counterService() {
var counters = [0, 0, 0, 0];
return {
getCounters: getCounters,
decrement: decrement,
increment: increment
};
function getCounters() {
return counters;
}
function increment(i) {
if (angular.isDefined(counters[i]))
counters[i]++;
}
function decrement(i) {
if (angular.isDefined(counters[i]))
counters[i]--;
}
}
这是服务。您需要从中获取的只是计数器的状态存在于服务中,并且还与服务进行交互的功能。