0

sencha touch 2 MVC アプリケーションを使用しています。私の app.js ファイルには launch() メソッドがなく、

controllers: ['HomeController'],

と私の HomeController ルート

       routes: {
        '': 'viewHomePage',                       //1st page
        'ap': 'viewContactPage',                  //2nd page
        'ap/:id': 'viewContactPageById'           //3rd page
       //others
    }

2ページ目と3ページ目にボタンがあります

xtype:'button',
listeners: {
                    tap: function () {
                        history.back();
                    }
                }

問題は、page2 の場合に history.back() が機能しないことです。しかし、ページ3の場合はうまく機能します。

これが特殊なケースである場合、アプリケーションを再起動する方法。

MVCの場合に機能しない場合、ソルンは何ですか? またはこれを行う他の方法はありますか?

4

3 に答える 3

2

申し訳ありませんが、Chrisですが、history.back()をSenchaTouch2アプリで動作させることができます。コントローラがredirectTo(url)を使用している限り、標準のhistory.back()は期待どおりに機能します。

したがって、コントローラーで現在のURLから別のURLにリダイレクトする場合、リダイレクト後にhistory.back()を使用すると、元のURLに戻ります。

于 2012-07-21T02:51:05.073 に答える
0

古いボタンとそのタップ イベントをコピーした場合、この問題の原因となる名前の競合が発生します。

すべての新しいボタンの名前を一意の名前に変更し、タップイベントを削除して再度作成します

于 2013-05-02T15:08:07.213 に答える
-1

history.back() は以前の URL にリダイレクトします。sencha touch アプリは、リダイレクトなしで単一の URL に含まれています。コンテナを積み重ねることで機能します。ただし、それらはすべて同じページに含まれているため、 history.back() は機能しません。

sencha touch アプリ内のリダイレクトについての考え方を変える必要があります。基本的に、「戻る」にはビューを切り替える必要があります。これを行うには、次のコードを使用します。

 Ext.Viewport.setActiveItem({
      xtype: 'yourxtype'
 });

このコードは、ビューを現在のビューから選択した xtype に切り替えます。

于 2012-06-25T11:07:54.893 に答える