2013-03-26 131 views
0

我在我的Durandal應用程序中有一個messageBox,並且您是否單擊否或是您將被髮送到其他頁面。我想用路由器做到這一點,但頁面沒有切換。Durandal路由器未激活

我可以看到代碼正在執行該行,但沒有任何反應!

define(function(require) { 
var app = require('durandal/app'), 
    system = require('durandal/system'), 
    router = require('durandal/plugins/router'); 

return { 
    router: router, 
    displayName: 'SometingApp Startpage', 
    activate: function() { 
     system.log("Application started!"); 
    }, 
    createEstimate: function() { 
     app.showMessage('Do you want to create a new something?', 'New something', ['Yes', 'No']).then(function(result) { 
      if (result == "Yes") { 
       return router.activate('otherpage'); 
      } 
     }); 
    } 
}; 

});

用戶單擊綁定到createEstimate的按鈕!

希望有人能幫助!

+0

你在哪裏激活路由器上市?以及你如何將路線映射到模塊?你是否也可以在你的視圖上顯示你的寫作約束力。 – 2013-03-26 17:39:14

回答

3

我認爲你需要做的是調用router.navigateTo('#/ yourUrl')。

如果我理解正確的文檔,router.activate必須只調用一次,通常在shell激活。

可用於您的視圖模型導航路線功能的文檔

http://durandaljs.com/documentation/Router/下的部分「其他API」

+0

那沒辦法,對不起。我在main.js中正確配置了路由器,這相應地適用於Durandal紀錄片 – 2013-03-26 14:57:23

+0

當調用router.navigateTo時,控制檯上是否有任何錯誤消息? – 2013-03-26 15:01:38

+0

沒有;(,在我的控制檯或什麼都沒有! – 2013-03-26 15:07:09