2013-12-20 31 views
0

是否有一個簡單的杜蘭達方式來清除視圖和加載或請等待...在屏幕上,所以用戶得到一些反饋,知道它的工作,直到ajax內容加載?easy durandal請稍候,加載微調

現在,當我點擊某個導航到子路線的內容並且該子路線加載了一個模塊,該模塊必須在activate()中執行很多操作時,它不會切換導航或清除屏幕或給出任何反饋給用戶,它正在工作,我看到他們一遍又一遍地點擊多次,越來越沮喪,然後幾乎什麼時候他們想放棄,頁面加載正常。

我想爲我的應用程序設置此默認功能,而不必在每個模塊或每個頁面上做一些特殊的事情,這是可能的嗎?

謝謝。

回答

3

您是否嘗試過使用router.isNavigating?原迪朗達爾模板包含這樣的微調:

<div class="loader pull-right" data-bind="css: { active: router.isNavigating }"> 
    <i class="icon-spinner icon-2x icon-spin"></i> 
</div> 
+0

謝謝。這很有效,但最終我在全局模塊中使用了$ .blockUI和一個標誌來實現這個功能,原因是:事實證明,我真的需要能夠在加載時使用它,但在其他地方也是如此不是模態的,出現在幾乎不可見的一側,等等。這裏發佈的這個簡單的解決方案是正確的,但並不是那麼好。另一個正確的答案是 - 杜蘭達沒有一個好的模式,請等待內置,你必須建立自己的模式。 – pilavdzice

2

很大比例的時候,您是通過查找的內容可以得到很乾脆:

<div data-bind="compose:ActiveVm"> 
    <div class="text-center" style="margin : 75px"> 
     <i class="fa fa-spinner fa-spin"></i> 
    </div> 
</div> 

內格可以是任意標記將在視圖模型正在進行激活時顯示。

請注意,此目前僅在第一次組成該dom部分時顯示佔位符內容。如果您有正在通過可觀察到的視圖模型+撰寫方法更新應用程序的一個部分,你可以使用這裏的方法:

Durandal: Showing a 'LOADING...' during composition

對於任何來自未來的訪問,這個問題可能是值得一試在需要本地支持的情況下:

https://github.com/BlueSpire/Durandal/issues/414