似乎无法获得AngularFire' $ update'工作的

时间:2014-05-03 11:52:16

标签: angular-ui-bootstrap angularfire

我对Angular,Firebase和AngularFire都很陌生,所以很可能我会以错误的方式解决这个问题。

基本上我有一个模态(UI Bootstrap)中的表单,我想更新一些以前存储的值,但AngularFire'$ update'不会在Firebase中更新它们。创建和删除模态之外的项目工作正常。

这在我的服务范围内:

updateItem: function (id, item) {   
    var item_ref = new Firebase(FIREBASE_URL + ‘/items/‘ + user_id + '/' + id);
    var item = $firebase(item_ref);         
    item.$update({
      name: item.name,
      notes: item.notes
    });
}

这是在我的控制器内:

$scope.edit = function(id) {

    $modal.open({
    templateUrl: 'views/item.html',
    backdrop: 'static',
    keyboard: false,
    resolve: {
      data: function() {
        return {
          title: 'Edit item',
          item: Items.getItem(id)
        };
      }
    },
    controller: 'EditItemCtrl'
    })
    .result.then(function(item) {
      Items.updateItem(item.$id, item);
    });

};

这是我的模态控制器:

app.controller('EditItemCtrl', function ($scope, $modalInstance, data) {

  $scope.data = data;

  $scope.ok = function(item) {
     $modalInstance.close(item);
    };

  $scope.cancel = function() {
    $modalInstance.dismiss();
  };

});

这是我的模态模板:

<div class="modal-content">
    <div class="modal-header">
        <button class="close" style="margin-top: -10px;" type="button" ng-click="cancel()">×</button>       
        <h3>{{data.title}}</h3>
    </div>  
    <div class="modal-body">
      <form name="editItem" role="form" novalidate>
        <div class="form-group">
          <label class="sr-only" for="itemName">Item name</label>
          <input name="name" type="text" class="form-control" placeholder="Item name" value="{{data.item.name}}" ng-model="data.item.name">
        </div>
        <div class="form-group">
          <label class="sr-only" for="itemNotes">Item notes</label>
          <textarea name="notes" class="form-control" rows="2" id="itemNotes" placeholder="Notes" ng-model="data.item.notes" ng-maxlength="500">{{data.item.notes}}</textarea>
        </div>
      </form>
    </div>
    <div class="modal-footer">
        <button class="btn btn-default" type="button" ng-click="cancel()">Cancel</button>
        <button class="btn btn-primary" type="button" ng-click="ok(editItem.data.item)">OK</button>
    </div>
</div>

逐步显示所有内容都会显示要更新的项目和新值正在传递给服务,但它们并没有进入Firebase。

我猜我可能会以错误的方式解决这个问题 - 任何指导都会非常感激。

0 个答案:

没有答案