私は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
は一度だけ呼び出されています。