这是一个表格:
<span class="input-label">Name</span>
<input ng-model="name" type="text">
<span class="input-label">Comment</span>
<input ng-model="msg" type="text">
<button ng-click="addMessage()">Comment</button>
在触发click事件时,我调用控制器中的addMessage()函数:
app.controller('CommentCtrl', ['$scope', '$firebase', function($scope, $firebase){
var myRootRef = new Firebase("my://app/link");
$scope.addMessage = function() {
/*
* How do I store the name and comment obtained
* from the form in firebase.
*
* set, push does not work at all
*/
$scope.modal.hide();
}
}]);
答案 0 :(得分:3)
你真的很接近,只是一些事情。
我们需要通过传入Firebase引用来创建AngularFire绑定。由于我们正在使用ng-model
,因此我们可以从$scope
获取属性。但是,为名称和注释属性提供默认值可能是个好主意。
当我们致电addMessage
时,我们需要通过致电$child
转到子位置查看消息。然后,我们可以通过调用$add
添加新邮件。
<强> Plunker Demo 强>
app.controller('CommentCtrl', ['$scope', '$firebase', function($scope, $firebase){
var myRootRef = new Firebase("my://app/link");
$scope.messages = $firebase(myRootRef); // AngularFire binding created here
// default values
$scope.name = '';
$scope.msg= '';
$scope.addMessage = function() {
// go to the messages location and push the item by calling $add
$scope.messages.$child('messages').$add({
name: $scope.name,
comment: $scope.msg
});
// clear out the values after adding them to Firebase
$scope.msg= '';
$scope.name = '';
$scope.modal.hide();
}
}]);