У меня есть эта factory
в моих AngularJS:Не удается получить значение объекта в угловых
app.factory('userFactory', function($window) {
var auth = {
isLogged: false,
user: "a",
check: function() {
if ($window.sessionStorage.token) {
this.isLogged = true;
} else {
this.isLogged = false;
delete this.user;
}
}
}
return auth;
});
Я ставлю этот статический, для тестирования, внутри AngularJS controller
, когда button
щелкают это работает.
// replace "a" with the following
app.controller('LoginCtrl', ['$scope', '$window', '$location', 'userFactory',
function ($scope, $window, $location, userFactory) {
$scope.login = function(){
var userCredentials = {
"username": $scope.username,
"password": $scope.password
};
if (userCredentials.username == "amir" && userCredentials.password == "blum") {
userFactory.isLogged = true;
userFactory.user = {
"name": "amir",
"surname": "blumenfeld"
};
$location.path("/customer");
} else {
alert("NO");
}
}
}
]);
И тогда я пытаюсь сделать:
function menuCtrl($scope, $location, userFactory, $window) {
$scope.user = userFactory.user.surname;
}
Так "Блюменфельд" должен оказал здесь
<ul ng-controller="menuCtrl">
<li><a href="#home">{{ user }}</a></li>
</ul>
Но я не получаю ничего, только пустое пространство.
Пожалуйста, помогите мне понять, где я ошибся. Как я могу это исправить?
Благодаря
plunker? может ли ваш код? –
Похоже, у вас есть состояние гонки. При изменении '$ scope.user' значение не будет пересчитываться при изменении' userFactory.user' в другом контроллере. –
@ LoïcFaure-Lacroix не может быть состояния гонки. после того, как будут проведены достаточные циклы дайджеста, будет присутствовать значение – eltonkamami