13

私の Angular アプリでは、「プロジェクト」を$resource. 私のコントローラーでは、ページが読み込まれるとすぐに GET リクエストを介してサーバーにデータを要求します。Angular の双方向データ バインディングを使用してブラウザーで情報を編集し、次のように POST 要求を介してデータをサーバーに保存できます。

(簡潔にするために編集/簡略化)

function ProjectCtrl($scope, $routeParams, Project) {
    $scope.project = Project.get({id: $routeParams.projectId},
        function(data) { //Successfully received data }, 
        function(data) { //Failed to receive data },
    );

    $scope.saveProject = function() {
        $scope.project.save();
    };
}

私のノードサーバーはデータを正しく受信し、それを処理していくつかの変更を加え、データベースに保存し、JSON を介して新しく更新された「プロジェクト」オブジェクトで応答します。ページを更新するまで、Angular は新しいオブジェクトを表示しません。新しいデータを表示させる方法はありますか? 後で別の GET リクエストを手動で呼び出すよりも、これを行うためのより自動的な Angular の方法があると思います$scope.project.save();

4

1 に答える 1

15

サーバーの応答がへのコールバックへの最初の引数として返されるように見えます。サーバーが完全なsaveオブジェクトデータで応答する限り、それを使用して次のような「新しい」プロジェクトオブジェクトを作成できるはずです。

function ProjectCtrl($scope, $routeParams, Project) {
    $scope.project = Project.get({id: $routeParams.projectId},
        function(data) { /* Successfully received data */ }, 
        function(data) { /* Failed to receive data */ },
    );

    $scope.saveProject = function() {
        $scope.project.save(function(data) {
            $scope.project = new Project(data);
        });
    };
}
于 2012-11-27T02:05:59.890 に答える