I would like to get the id of the last view in KendoUI. I already inspected the event
object but found nothing that reveals this.
This could be the view that I came from with a tap or the view that I came from with the back button.
I would like to get the id of the last view in KendoUI. I already inspected the event
object but found nothing that reveals this.
This could be the view that I came from with a tap or the view that I came from with the back button.
これはどうですか:
var id = $('[data-role=view]:last').attr('id');
上記の回答を少し改善するために、アプリケーション オブジェクトの初期化時に直接アプリのペイン オブジェクトにイベントをアタッチできます。そのため、アプリの init が少し早く起動するため、タイムアウトは必要ありません。
var previous_view = '';
function store_previous_view(e)
{
try
{
previous_view = e.sender.view().id;
}
catch(e){}
}
app = new kendo.mobile.Application({navigate: store_previous_view});
イベントがすぐに発生し、view() が最初に null を返すため、try-catch が存在します。そのため、previous_view を使用する前に値が正常かどうかを確認する必要があります。
これは Kendo UI コア 2014.3.1119 で動作します。それが抜け穴なのか意図した動作なのかはわかりませんが、文書化されていません。
この回答は Kendo UI モバイル アプリケーション用ですが、基本的なプリンシパルは Kendo UI デスクトップのソリューションの基礎としても使用できます。
以前のビューを取得するためにビューの show イベント ハンドラーを使用e.view.nextViewID
していましたが、これは kendo ui バージョン 2014.1.528 で機能しなくなりました。そのため、 pane.navigateイベントを使用して以前のビューをグローバル変数に格納する次の回避策を見つけました。
var previousView = '';
var app = new kendo.mobile.Application();
app.pane.bind("navigate",
function(e) {
previousView = e.sender.view().id;
}
);
また、最初は app.pane が未定義になる可能性があることもわかったので、上記の app.pane.bind への呼び出しをsetTimeoutで 50 ミリ秒の遅延でラップしました。