javascript - 使用angularfire更新字段

  显示原文与译文双语对照的内容

我试图用AngularFire构建一个非常简单的延迟追踪器。 我得到miniApp添加员工成员,并将初始延迟分钟设置为 0值。

但是我一直在更新价值观。 用户单击'plus()'时应将 1添加到该值,当用户单击'minus()'时,将从该值移除 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'); 
};

});

请有人帮我get好?

时间: 作者:

你可以将 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--; 
};

或者你可以这样做 inline:


<button ng-click="late.mins++" name="minus">-</button>

作者:

好吧,我认为这可以能有助于进一步解决我认为新的开发者做出了。

解决这个问题的方法之一是使用输入 type="号码",然后有一个按钮保存/提交到 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));
 };
}]);

我希望这有助于

...