У меня есть диалоговое окно контроллер:сервис значение обновления асинхронного
.controller('loadingDialogCtrl', function($scope, $mdDialog, $rootScope, loadingDialog) {
$scope.loadingDialog = loadingDialog;
});
В моем другом контроллере я показать это диалоговый контроллер и манипулировать с ним LoadingDialogService
:
.controller('myCtr', function($scope, $mdDialog, loadingDialog) {
$mdDialog.show({
controller: 'loadingDialogCtrl',
templateUrl: 'tmpl/loadingDialog.tmpl.html'
});
loadingDialog.status = "Formatting...";
})
LoadingDialog
обслуживание:
angular.module('LoadingDialogService', []).service('loadingDialog', function ($mdDialog) {
this.progress = 0;
this.status = "Loading data from board...";
this.additionalStatus = "";
this.mode = "determinate";
return {
progress: this.progress,
status: this.status,
additionalStatus: this.additionalStatus,
mode: this.mode
}
});
Это прекрасно работает. Но, к примеру, если я изменить значение службы в функции асинхронной мой диалога вид не обновляется:
//progress bar inside dialog have changed
loadingDialog.progress = 55;
setTimeout(function() {
//progress bar inside dialog didn't change
loadingDialog.progress = 55;
}, 10)
я попытался $ таймаут не помогло. – Arti
значение изменяется на 100% - потому что console.log (loadDialog.progress) печатает ход – Arti
Значение изменяется, но цикл дайджеста не запускается, что означает, что значение в вашем HTML не будет обновляться. Использование $ timeout должно исправить это, если нет другой проблемы. Можете ли вы добавить свое диалоговое окно к своему сообщению? – Fissio