хорошо, поэтому я создаю веб-приложение, используя angular.js. Я начал реализовывать аутентификацию пользователя.Обновление переменной в другом контроллере в AngularJS
Я сделал это с его собственным контроллером:
app.controller("userControl", ["$http", "share", function($http, share){
this.login = {};
var user = this;
this.doLogin = function(){
this.login.fn = "login";
$http.post('classes/main.php', user.login).success(function(data){
console.log(data.Error);
if(data.Error == undefined){
alert("Success");
share.user = data;
window.location.href = "#memberHome";
}
});
}
}]);
и у меня есть страница для членов с его собственным контроллером:
HTML:
<div id="memberHome" data-role="page" ng-controller="member-Ctrl as member">
<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<p class="navbar-brand" href="#">Calendar</p>
</div>
<ul class="nav navbar-nav navbar-left">
<li><a href="#">Overview</a></li>
<li><a href="#">Friends</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><span class="glyphicon glyphicon-user"></span> Logged in as: {{member.user.forename + " " + member.user.surname}}</a></li>
<li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Log Out</a></li>
</ul>
</div>
</nav>
<div data-role="content">
<calendar selected="day"></calendar>
</div>
</div>
JavaScript:
app.controller("member-Ctrl", ["share", function(share){
this.user=share.user;
}]);
I необходимо, чтобы пользовательский контроллер сообщил контроллеру-члену информацию о новом пользователе.
Я гугле это и посмотрел на ответы на аналогичный вопрос, который привел меня к This
и я создал службу, как показано на видео:
app.service("share", function(){
this.user = {}
});
Теперь всякий раз, когда я войти и перенаправляется на страницу memberHome
, это говорит мне Logged in as:
Может ли кто-нибудь понять, почему это может быть?
Я очень новичок в Угловом, и изучаю, почти все, когда мне это нужно.
я, вероятно, следует сказать, что я использую JQuery Mobile (для нескольких страниц документа) и Bootstrap 3
Здесь: http://stackoverflow.com/questions/12008908/how-can-i-pass-variables-between-controllers –
я обновил свой сервис и контроллеры основанный на ответе на этот вопрос, он не работал, поэтому я добавил 'console.log()' в функции, которые я добавил в службу. Функция 'setUser' работает, функция' getUser' никогда не вызывается ... Я думаю, мне нужен способ сообщить контроллеру-члену, что пользовательский объект изменился в службе –