このセットアップを使用して、AngularJS でフォームを保存できます。
name="" 属性で定義されているように、データ値を ($save メソッドを介して) サーバーにプッシュしたいと考えています。
したがって、このように送信されたフォームは次のようになります。
理想形データ
{
book: {
word : '...',
book : '...',
page : '...'
}
}
ただし、代わりにハッシュとして直接送信されます (内部の book ブロックなし)。
私のフォームとコントローラーは次のようになります。
マイフォーム
<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>
私のコントローラー(Angular)
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();
};
}
何か案は?