サーバーに投稿するときに双方向のデータバインディングを実現する方法について、少し混乱しています。
私は自分のリソースを次のように定義しました:
angular.module('todoServices', ['ngResource']).
factory('Todo', function($resource){
return $resource('api/v1-0/todos/:todoId', {}, {
query: {method: 'GET', params:{todoId:''}, isArray: true},
save: {method: 'POST', isArray: true}
});
})
Todoリソースを依存関係としてコントローラーに渡します。
次に、コントローラーに新しいTodoアイテムをリストに追加するメソッドがあります。
$scope.addTodo = function() {
var savedModel = new Todo();
savedModel.title = $scope.title;
savedModel.description = $scope.description,
//...
savedModel.$save();
$scope.todos.push(savedModel);
}
これは、私のToDoがリストに表示され、サーバーへの呼び出しが機能し、アイテムがデータベースに追加される限り機能します。ただし、リストにプッシュしたので、まだIDがありません。IDは、MySQLデータベースの自動インクリメントIDによって生成されます。私のサーバーはオブジェクトをJSON形式で返すので、データバインディングを機能させるには、ある種のコールバック関数を指定する必要があると思いますか?正確に何をする必要があるので、サーバーがデータを返すと、追加されたToDoが正しいIDで更新されますか?