2016-01-13 5 views
0

У меня есть страница регистрации, которая получает ответ от бэкэнда при заполнении формы регистрации и нажатии кнопки регистрации.ионная платформа ng-show работает только во второй раз

Если имя пользователя существует в базе данных, то ответ возвращает ложь, а затем оттуда я изменить переменную $ Scope ($ scope.signedUp) истинно, который должен просто показать это существующее сообщение об ошибке:

<div class="padding assertive" ng-show="signedUp"> 
    <i class="icon ion-minus-circled"></i> 
    Woops! Looks like that user already exists, try a different username. 
</div> 

Вот текущая область видимости функции в контроллере Регистрация:

$scope.signup = function(){ 
    User.signup($scope.credentials).then(function(res){ 
     if(res === false){ 
     console.log('res is: ', res); 
     $scope.signedUp = true; 
     console.log('$scope.signedUp ',$scope.signedUp); 
     } 
    }); 
}; 

в первый раз я заполняю информацию из, и нажмите кнопку Регистрация, журналы консоли журнал это:

app.js:47 res is: false 
app.js:49 $scope.signedUp true 

Однако ошибка не появляется, но странно, когда я нажимаю ее снова, она появляется, но ничего в журнале консоли не отличается, это ошибка с ионной? Я заметил, что подобный пост здесь:

ng-hide/ng-show within an ng-hide/ng-show not working properly in **chrome** on first trigger, second time it reflects just fine

Но, кажется, плакат работал вокруг него с дисплеем нет, я не хотел бы это сделать, если это возможно, спасибо.

+0

Мне было интересно, ответил ли ниже ответ на ваш вопрос, если нет, что-то еще вам нужно знать? Стандартная практика должна была бы «принять» ответ ниже, если это разрешит ваш вопрос. – par

ответ

1

Если обновить переменную в объеме, который виден в окне запустить следующую строку:

$scope.$apply(); 

Это вымывает выход и вид будет обновляться. Однако трудно сказать, не видя полного кода.

Смежные вопросы