1

使用这个设置,我可以在 AngularJS 中保存一个表单。

我希望将数据值推送到服务器(通过 $save 方法),如 name="" 属性中定义的那样。

所以像这样提交的表单看起来像这样:

理想形式数据

{
  book: {
    word : '...',
    book : '...',
    page : '...'
  }
}

但它直接作为散列提交(没有内部书芯)。

这是我的表单和控制器的样子:

我的表格

<div>
  <form data-ng-submit="save()">
    <ol class="fields">
      <li>
        <div class="label">
          <label for="word">Word: </label>
        </div>
        <div class="details">
          <input type="text" name="word[word]" data-ng-model="word.word" />
        </div>
      </li>
      <li>
        <div class="label">
          <label for="book">book: </label>
        </div>
        <div class="details">
          <input type="text" name="word[book]" data-ng-model="word.book" />
        </div>
      </li>
      <li>
        <div class="label">
          <label for="page">page: </label>
        </div>
        <div class="details">
          <input type="text" name="word[page]" data-ng-model="word.page" />
        </div>
      </li>
    </ol>
    <nav class="actions">
      <input type="submit" value="save" />
    </nav>
  </form>
</div>

我的控制器(角度)

var saveCtrl = function($scope, $routeParams, Word, $location) {
  $scope.word = Word.get({
    id : $routeParams.id 
  });
  $scope.save = function() {
    $scope.word.$save({
      id : $scope.word.id
    });
    $location.path('/').replace();
  };
}

有任何想法吗?

4

1 回答 1

1

也许这样的事情会在你的控制器中工作:

Word.save({
  id : $scope.word.id
}, {
  book : { word: $scope.book }
});

取自文档,我认为您需要设置postData以覆盖正在发布的默认数据。

非 GET “类”操作:Resource.action([parameters], postData, [success], [error])

于 2012-07-22T10:10:16.297 回答