現在、Angular-ui の一部 (特に UI-Bootstrap) を使用して AngularJS webapp を作成しています。
アプリがデータを取得している間、読み込みダイアログを表示できるようにしたいと考えています。初期ロードでは、ダイアログの背後に何も表示しないつもりです。
次のことを試みましたが、ダイアログは正常に開きますが、データがロードされても閉じません。
JS:
angular.module('MyApp', [ui.bootstrap])
.controller ('AppCtrl', function ($scope, $http, $dialog) {
$scope.initalized = false;
$scope.opts = {dialogFade:false};
$scope.data = [];
var loadDialog = $dialog.dialog($scope.opts);
$scope.loadData = function() {
loadDialog.open('template.html').then(function() {
// When the dialog is closed show the page content
$scope.initialized = true;
});
$http.get('my/url').then(function(result) {
$scope.data = result.data;
$scope.removeDialog();
});
};
$scope.removeDialog = function() {
loadDialog.close();
};
});
HTML:
<html ng-app="MyApp">
<head>...</head>
<body>
<div ng-show="initialized" ng-init="loadData() ng-controller="AppCtrl">
...
</div>
</body>
</html>
さまざまなページを読んだことから、close 関数をダイアログ コントローラーに入れることになっていると思いますが、それをどのように呼び出すのでしょうか?
これを実装する方法に関する他の提案は大歓迎です。
ありがとうございます!
編集
より明確にするために、私が抱えている問題は、関数 removeDialog() が画面からダイアログを削除しないことです。