0

我的 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 的按钮!

希望有人能帮忙!

4

1 回答 1

3

我认为您需要做的是调用 router.navigateTo('#/yourUrl')。

如果我理解正确的文档, router.activate 必须只调用一次,通常在 shell 激活时。

文档中列出了可用于 viewModel 导航的路由功能

http://durandaljs.com/documentation/Router/在“其他 API”部分下

于 2013-03-26T14:48:42.923 回答