Iron Routerを使用して、Meteorプロジェクトの特定のURLからBootstrapモーダルを起動しています。ブラウザの戻るボタンと進むボタンを使用できますそれらをナビゲートする。初めてアイアンルーターを起動することができません
問題:
それが正常に動作し、その後アイアンルーターは、ブラウザの戻るボタンがクリックされる最初の時間に発生しません!
マイコード:
私は、コードを少し簡略化されますが、これは、モーダルの開閉(これが機能する)ときに私はURLを設定する方法です。
Template.main.events({
// modal closed -> URL to "/"
'click.dismiss.bs.modal': function() {
if(window.location.pathname != "/"){
// error prevention:
// click.dismiss.bs.modal also fires when user opens a modal
window.history.pushState("", "", "/");
}
},
// modal opened -> URL to "/u/username"
'click *[data-target="#infoModal"]': function() {
window.history.pushState("", "", "/u/" + username);
}
});
これは私のrouter.jsコードであり、これも少し簡略化されています。コンソールのログは、ブラウザの戻るボタンが押されたときに初めて返されます。
Router.route('/u/:username', {
name: 'u.show',
waitOn: function() {
return Meteor.subscribe('users');
},
action: function() {
console.log("Iron Router is trying to open #infoModal");
$('#infoModal').modal('show');
}
});
Router.route('/', {
name: 'home.show',
waitOn: function() {
return Meteor.subscribe('users');
},
action: function() {
console.log("Iron Router is trying to close all modals");
$('.modal').modal('hide');
}
});
私は前ので、私は本当に私がここで間違ってやっている、すべてのヘルプははるかに高く評価されるのか分からない鉄のルータで働いたことはありません!
ありがとうございます! Router.go();私の問題は解決しました。私はあなたのチェックが私の例よりも優れている理由も理解していますが、元のアプリケーションでは、クリックされた要素がURLをチェックするのではなく、モーダルを起動するかどうかをチェックします。あなたの提案はおそらく私の例に基づいてベストプラクティスです。 –