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'
}; });

しかし、私の問題は、viewUrl プロパティからの load.html が短期間表示されることです。その直後に前のページに戻ります。

loading.html ページがレンダリングされないようにしたい。どうやってするか?Durandal のドキュメントを調べて Google で検索していますが、役立つ情報が見つかりません。

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

上記のコードは、アクティブ化関数から false を返し、ページのレンダリングを防止しようとしましたが、機能しません:(

編集

設定/読み込みがレンダリングされないようにして、ナビゲートしていた前のページを更新したい。

4

1 に答える 1

0

はい、lifeCycle 関数return falseを使用してそれを行うことができます (詳細はこちら)canActivate

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