У меня есть простое приложение с firebase. Для базы данных firebase я сохраняю некоторые данные, и после сохранения я хочу показать окно предупреждения пользователю с ответом, что «everythig is great» или «bad». Для окна предупреждения я использую ui-bootstrap. Для предупреждения я использую $ rootScope. Поэтому, когда я сохранил некоторые данные у меня есть обратный вызов:
person.child(someName)
.set(personData)
.then(function() {
$rootScope.alert = {type:'success', msg:'Person is added!'};
$rootScope.showAlert = true;
console.log($rootScope.showAlert, $rootScope.alert);
})
.catch(function (e) {
$rootScope.alert = {type:'danger', msg:e};
$rootScope.showAlert = true;
});
HTML является:
<div uib-alert
ng-class="'alert-' + (alert.type || 'warning')"
dismiss-on-timeout="2000"
ng-if="showAlert"
close="close()">{{alert.msg}}
</div>
<button ng-click='press()'>Press</button>
и контроллер вызывает завод:
$scope.press = function() {
fact.setItem({name: 'Josh', age: 20, sex: 'male'});
}
В консоли я вижу, что rootScope это значение настройки для alert и showAlert, но предупреждение не работает, поэтому я привязываю это значение 2 на странице html, и я вижу, что мое первое нажатие кнопки не работает, но второе работает и т. д. In jsbin example I make this situation. Где я ошибаюсь в этой ситуации?
ТНХ для ответа, это работает! Я забыл про $ apply и несколько дней не могу понять, что с ним не так :) – YoroDiallo