2014-05-18 65 views
0

是否有可能通過散列導航到某個頁面,然後執行一些邏輯並重定向回來,而不呈現新頁面/模塊,而是刷新一個,我從哪裏導航?DurandalJS如何重定向而不渲染頁面?

其實我想要的是做一些邏輯和刷新同一頁面而不顯示啓動畫面。

,比如我有簡單的HTML鏈接:

<a class="language-link" href="#language/en-US"> 

在language.js我有簡單的代碼,在 「激活」 功能獲取數據:

define(['plugins/router', 'jquery'], function (router, $) { 
return { 
    activate: function (culture) { 
     return $.post("api/language", { '': culture }, function() { 
      router.navigateBack(); 
     }).then(function() { return false; }); 
    }, 
    viewUrl: 'settings/loading' 
}; }); 

丁基我的問題是,在很短的時間內,viewUrl屬性的loading.html就顯示出來了。之後,我將回到上一頁。

我想阻止從渲染load.html頁面。怎麼做?我正在通過Durandal documentacion旅行並在google中搜索,但找不到任何有用的信息。

.then(function(){return false;});

上面的代碼是我嘗試返回從激活功能,虛假和防止頁面無法呈現,但不工作:(

編輯

我想阻止設置/加載從渲染和REFRESH以前的網頁,我是從航行。

回答

0

是的,你可以做到這一點return false使用canActivate生命週期函數(Read more here

define(['plugins/router', 'jquery'], function (router, $) { 
return { 
    canActivate: function() { 
     // some logic.. 
     // router.navigateBack();    
     return false; 
     } 
}; }); 
+0

我也試過,但是我從中導航的頁面沒有刷新。也許我在這方面不一致,但我想阻止從我正在導航的渲染和REFRESH前一頁中進行設置/加載。 –