我刚刚开始使用角度,我觉得一些细节正在阻止我让它正常工作!
我设置了一个这样的简单服务:
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);
//...
}
]);
这需要什么才能工作?
编辑:我的 setter 方法userAcsService
只被调用一次。