我目前正在一個項目的角度。每次頁面更改時,我都會嘗試顯示加載微調器。要做到這一點,我們使用ngRoute模塊,並聆聽routeChangeStart,routeChangeSuccess,routeChangeError事件。莫代爾加載微調框不顯示第二次
下面的代碼:
$scope.$on('$routeChangeStart', function (event, param) {
var html = "<div class='panel-body'>"
+ "<div class='col-md-4 col-md-offset-4' style='top: 50%;'>"
+ "<i class='fa fa-spinner fa-spin'></i> Caricamento in corso..."
+ "</div>"
+ "</div>";
that.myModal = $modal.open({
template: html,
backdrop: 'static'
});
});
$scope.$on('$routeChangeSuccess', function (event, param) {
that.myModal.dismiss('nessuna');
});
$scope.$on('$routeChangeError', function (event, param) {
that.myModal.dismiss('nessuna');
});
這工作,但只有第一次的某一頁被改變。我試圖更好地解釋:當我們在頁面X並導航到頁面Y模態顯示,然後頁面更改後隱藏。如果我回到頁面X並導航到頁面Y再次顯示模態微調器。
調試時,我可以看到modal.open()執行,但它從來沒有顯示過。它看起來像角度是以某種方式延遲命令。
有誰知道爲什麼會發生這種情況?有沒有人遇到過這個問題?
該html是否定義在控制器內,在路由更改後被換出。這也許是模態沒有顯示爲視圖內容有變化的原因。 – Chandermani
這是我們的佈局控制器,所以它在應用程序的每個頁面都可用。 – Th0rndike
MMm ...如果你覺得它有趣,我可以建立一個樣本,這不是一個更好的方法來攔截在應用程序級別的$ http調用並基於此顯示/隱藏(這也適用於你的ajax請求)。 – Braulio