我剛剛開始使用angular,並且我覺得有一些細節阻止了我使它正常工作。
我成立了一個簡單的服務是這樣的:存儲在服務中的數據無法稍後檢索
mySystem.factory('userAcsService', [function() {
var user;
return {
getuser: function() {
return user;
},
setuser: function (value) {
user = value; // working fine
console.log('name: ' + user.name);
}
};
}]);
第一控制器(上'/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
中的setter方法只被調用一次。
你可以顯示你在哪裏調用'$ scope.details(someRealUser)'。當你詢問'userAcsService.getuser();' –
它們在不同的頁面上時,'userAcsService.getUser()'在我重定向到''/ User/Details''時調用,它肯定會在調用二傳手(也通過調試確認)。我遇到的問題是我假設'userAcsService'是一個單身人士,看來我正在得到一個新的實例,但我不知道如何。 –
你解釋的什麼都不假設AngularJS服務可能無法成爲單身人士。 –