2016-09-29 49 views
0

當用戶即將離開本路線重試的轉變,我想顯示警告,讓他離開(和失去的變化),並停留在當前的路由之間進行選擇。Emberjs:停止和willTransition

爲了抓住所有可能的過渡,我需要這樣做的路線willTransition方法。

我試圖abort()然後retry()過渡,如果用戶選擇。但retry似乎沒有任何影響。應該指出,它是異步調用的。以下是一個演示,一個玩弄:https://ember-twiddle.com/b6d8ddb665ff79f2988277912916e77b?openFiles=routes.my-route.js%2C

這裏是我的路線例如路線:

import Ember from 'ember'; 
 

 
export default Ember.Route.extend({ 
 
    actions: { 
 
    willTransition(transition) { 
 
     transition.abort(); 
 
     Ember.run.later(function(){ 
 
     console.log('Transition... now!'); 
 
     transition.retry(); 
 
     }, 2000); 
 

 
     return true; 
 
    } 
 
    } 
 
});

日誌顯示出來,但我從來沒有得到重定向到application路線。

回答

3

看看日誌。你會看到「過渡......現在!」每2秒出現一次。這表明willTransition一次又一次地工作。所以你需要一些可以讓你走的標誌。 Updated twiddle

+0

被抓住了!我應該看到日誌保持未來:)謝謝。 –

1

當用戶即將離開本路線,我想顯示警告,讓他離開(和失去的變化),並停留在當前的路由之間進行選擇。
對於上述要求,下面的代碼就足夠了。

willTransition(transition) { 
    if (!confirm('Are you sure to navigate ?')) { 
     transition.abort(); 
     return false; 
    } 
    return true; 
} 
+0

警告通過第三方庫(甜警報),這就要求確認是異步的,因此爲什麼我寫做「應該注意的是異步調用的。」 –