0

私はAngularを始めたばかりで、いくつかの詳細がこれを正しく機能させるのを妨げているように感じます!
次のような単純なサービスをセットアップしました。

mySystem.factory('userAcsService', [function() {
    var user;

    return {
        getuser: function () {
            return user;
        },
        setuser: function (value) {
            user = value;   // working fine

            console.log('name: ' + user.name);
        }
    };
}]);

最初のコントローラー ( on '/User/Search') は、そのデータを正しく保存します。

mySystem.controller('SearchController', ['$scope', '$route', '$routeParams', '$location', '$http', 'userAcsService', 
    function ($scope, $route, $routeParams, $location, $http, userAcsService) {
        //...
        $scope.details = function (user) {
            userAcsService.setuser(user);   // setting works fine
            window.location.href = '/User/Details';
        };
        //...
    }
]);

しかし、別のコントローラーを使用してそのユーザーを取得しようとすると (へのリダイレクト後'/User/Details')、常に未定義です:

mySystem.controller('EditController', ['$scope', '$route', '$routeParams', '$location', '$http', 'userAcsService',
    function ($scope, $route, $routeParams, $location, $http, userAcsService) {
        //...
        $scope.user = userAcsService.getuser(); // always undefined
        alert($scope.user.name);
        //...
    }
]);  

これが機能するには何が必要ですか??

編集:私のセッターメソッドuserAcsServiceは一度だけ呼び出されています。

4

1 に答える 1