У меня возникает проблема, когда переменная обновляется в моем контроллере, но обновление не отображается в представлении.Угловой вид не обновляется, когда контроллер обновлен
Переменная, которая должна отображаться на переднем конце, это loginErrorMessage, но переменная не появится, если я перейду оттуда, а затем вернусь на эту страницу, несмотря на то, что она обновлена в контроллере.
Ниже контроллер:
function LoginCtrl($rootScope, $state, $scope, UserService, AttributesService){
var vm = this;
vm.loginErrorMessage = '';
vm.email = '';
vm.password = '';
vm.doLogin = doLogin;
vm.successLoginJoinApiResponse = successLoginJoinApiResponse;
function doLogin(){
if(UserService.validateLoginCredentials()){
UserService.loginUser()
.success(function(response){
vm.successLoginJoinApiResponse(response, false);
})
}else{
vm.loginErrorMessage = 'Incorrect Email or Password';
console.log(vm.loginErrorMessage)
//vm.loginErrorMessage is updated at this point
}
}
function successLoginJoinApiResponse(response, join){
// stuff happens here, not where the issue is.
}
}
Вот Маршрут:
.state('app.login', {
url: '/login',
cache: false,
views: {
'menuContent': {
templateUrl: 'templates/login.html',
controller:'LoginCtrl as app'
}
},
})
А вот вид:
<ion-view view-title="" class="">
<ion-nav-bar class="white-back">
</ion-nav-bar>
<ion-content scroll="false" class="white-back has-header">
// This is where the variable should be displayed
<div class="login-error-message" ng-bind="app.loginErrorMessage">
</div>
<div class="center-everything mar-top-25">
<form ng-submit="app.doLogin()">
<div class="list pad-20 pad-top-30 pad-bottom-0">
<label class="item item-input input-login">
<input type="email" placeholder="Email" ng-model="app.email">
</label>
<label class="item item-input mar-top-15 input-login">
<input type="password" placeholder="Password" ng-model="app.password">
</label>
</div>
<div class="pad-20 pad-top-0">
<a class="link" ng-click="app.doLogin()">
<button class="button button-block blue-back white" id="button-submit-stuff" type="submit"><b>LOGIN</b></button>
</a>
</div>
</form>
</div>
</ion-content>
</ion-view>
UserService.validateLoginCredentials() возвращает ложь и т.д. сценарий переходит к инструкции else, и где-то там, где он терпит неудачу.
Я попытался запустить $ scope. $ Apply(), но я получаю уже выполненную ошибку $ apply().
Я также заметил, что переменная появится на мгновение, когда я перейду от страницы.
Я также управляю этим через ионный.
Если у кого-нибудь есть совет, я бы очень признателен, спасибо!
Нет, это на самом деле просто, если/другое заявление в службе, Безразлично Не вернем обещания. – RandyMarsh