使用angularjs在firebase中存储注释

时间:2014-07-15 00:45:53

标签: javascript database angularjs firebase angularfire

这是一个表格:

<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();
    }
}]);

1 个答案:

答案 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();
    }
}]);