0

是否可以通过哈希导航到某个页面,然后执行一些逻辑并重定向回来而不呈现新页面/模块,而是刷新我导航的那个页面/模块?

实际上我想要的是做一些逻辑并刷新同一页面而不显示启动画面。

例如,我有简单的 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'
}; });

Buty 我的问题是,在很短的时间内,viewUrl 属性中的 loading.html 正在显示。之后,我将返回上一页。

我想阻止 loading.html 页面呈现。怎么做?我正在浏览 Durandal 文档并在谷歌中搜索,但找不到任何有用的东西。

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

上面的代码是我尝试从激活函数返回 false 并阻止页面呈现,但不起作用:(

编辑

我想防止设置/加载渲染和刷新我导航的上一页。

4

1 回答 1

0

是的,您可以通过return false使用canActivatelifeCycle 功能来做到这一点(在这里阅读更多

define(['plugins/router', 'jquery'], function (router, $) {
return {
    canActivate: function () {
        // some logic..
        // router.navigateBack();              
        return false;
      }
}; });
于 2014-05-19T05:08:21.313 回答