Мне нужно позвонить $route.reload();
в контроллер 2 addData
API-вызов, чтобы я мог добавлять дополнительные данные в свой интерфейс. Но затем текст «Данные добавлены успешно» уходит из-за обновления страницы.Показать предупреждение после перезагрузки страницы
Контроллер 1:
$rootScope.$on('reloaded', function(event, data) {
$scope.$parent.alerts.length=0;
$scope.$parent.alerts.push({type: 'success',msg: 'Data added successfully'});
});
контроллер 2:
$scope.add = function() {
someAPIService.addData(JSON.stringify($scope.rows)).success(function(response) {
ngDialog.close('ngdialog1');
$route.reload();
$rootScope.$emit('reloaded', "true");
});
}
HTML-часть:
<section>
<div ng-controller="controller3">
<alert ng-repeat="alert in alerts" type="{{alert.type}}" close="closeAlert($index)">{{alert.msg}}</alert>
</div>
<div class="row form-inline" ng-controller="controller2 as vm">
<!-- Table data with text fields-->
</div>
<script type="text/ng-template" id="addDataDialog">
<div id="frm" ng-controller="controller1" class="col-xm-6">
<div class="form-group">
<!-- Labels with text fields-->
</div>
<button class="ngdialog-button" ng-click="add()">Save</button>
</div>
</script>
</section>
ПРИМЕЧАНИЕ: Оба контроллера находятся в одном файле JS
и используются для одного и того же HTML-файла.
где 'контроллер 1' ложь? нужна html-структура тоже –
Зачем вам «перезагружать»? Может быть, вы можете просто обновить '$ scope'? – k102
Я думаю, что когда вы вызываете '$ route.reload()', контроллер немедленно уничтожается, поэтому он никогда не достигнет '$ rootScope. $ Emit' – devqon