5

リストビューと詳細ビュー用に別々のルートとコントローラーを備えた典型的な CRUD アプリがあります。

リストのデータは、$resource.

現在、私の詳細ビュー コントローラー$resourceでは、追加の http 要求が発生する を使用してサーバーから項目を取得しています。

代わりに、リスト コントローラーには既に編集中のアイテムがあるため、このアイテムをリスト コントローラーからディテール コントローラーに渡したいと思います。

しかしどうしたら良いかわからない。両方のビューに対して単一のコントローラーを作成できますが、これは正しくないようです。

助けてください。

4

1 に答える 1

4

サービスを使用して、コントローラー間でデータを共有できます。

例: https://groups.google.com/d/msg/angular/IjKY_CRyRno/kP0M_LTzOTkJ

または私が少し前に書いたフィドル:http://jsfiddle.net/XqDxG/169/

myModule.factory('mySharedService', function($rootScope) {
    var sharedService = {};
    sharedService.data = {};
    sharedService.data.message = '';

    return sharedService;
});

function ControllerZero($scope, sharedService) {
    // expose service data to angular scope
    $scope.sharedData = sharedService.data;

    $scope.handleClick = function(msg) {
        sharedService.data.message = msg;            
    };

    $scope.$watch('sharedData.message', function(msg) {
        $scope.message = msg;
    });
}

function ControllerOne($scope, sharedService) {
    $scope.sharedData = sharedService.data;

    $scope.$watch('sharedData.message', function() {
        $scope.message = 'ONE: ' + sharedService.data.message;
    });
}
于 2012-10-23T15:55:14.177 に答える