我试图用AngularFire构建一个非常简单的迟到跟踪器。我已经让miniApp添加了工作人员,并将最初的分钟设置为0值。
但我坚持更新价值观。当用户点击'加()'当用户点击'减去()'时,它应该为值加1它应该从值中删除1,最后当您点击“resetMins()'它应该将值设置回0。
查看:
<div class="row">
<div class="col-sm-4" ng-repeat="late in lateness">
<h1>{{late.name}}</h1>
<h2>{{late.mins}}</h2>
<span>Mins Lateness</span>
<div ng-show-auth="">
<button ng-click="minus()" name="minus">-</button>
<button ng-click="plus()" name="plus">+</button>
<div>
<button ng-click="resetMins()">Reset</button>
</div>
</div>
</div>
控制器:
angular.module('goskirmishApp').controller('MainCtrl', function ($scope, fbutil, $timeout) {
// synchronize a read-only, synchronized array of messages, limit to most recent 10
$scope.lateness = fbutil.syncArray('lateness', {});
// display any errors
$scope.lateness.$loaded().catch(alert);
function alert(msg) {
$scope.err = msg;
$timeout(function() {
$scope.err = null;
}, 5000);
}
// Reset mins
$scope.resetMins = function() {
console.log('reset Clicked');
};
$scope.minus = function() {
console.log('minus Clicked');
};
$scope.plus = function() {
console.log('plus Clicked');
};
});
有人可以帮助我走上正确的轨道吗?
答案 0 :(得分:0)
您可以将late
传递给您的控制器功能:
<div ng-repeat="late in lateness">
...
<button ng-click="minus(late)" name="minus">-</button>
<button ng-click="plus(late)" name="plus">+</button>
</div>
并在您的控制器中:
$scope.minus = function(lateObj) {
lateObj.mins--;
};
或者你可以直接这样做:
<button ng-click="late.mins++" name="minus">-</button>
答案 1 :(得分:0)
好吧所以我认为这可能有助于进一步解决我认为New Dev做得很好的解决方案。
我解决这个问题的一种方法是使用输入类型=&#34;数字&#34;然后有一个保存/提交到firebase的按钮。
以下是使用您情况的示例。
<div ng-repeat="late in lateness">
{{late.name}}
<input ng-model="late.number" type="number" min="0">
<button ng-click="save()" name="save">save</button>
</div>
加入你的JS
app.constant('FIREBASE_URI', 'https://YOURAPP.firebaseio.com');
app.controller('Late', ['$scope', '$firebase', 'FIREBASE_URI', function ($scope, $firebase, FIREBASE_URI) {
var Lateref = new Firebase(FIREBASE_URI + "/LateWorkers");
var Latesync = $firebase(Lateref);
$scope.LateList = Latesync.$asArray();
$scope.save = function () {
$scope.LateList.$add(angular.copy($scope.Late));
};
}]);
我希望这会有所帮助