Rails 3 アプリでターボリンクを使用しようとしています。ページの変更後に Alertify が機能しなくなることを除いて、すべて問題ありません。
jquery-turbolinks gem をインストールしてパッチを当てましたが、効果はありませんでした。
また、alertify 関数をラップして page:change でトリガーしようとしましたが、やはり喜びはありません。
ターボリンクに問題がある人はいますか?
Rails 3 アプリでターボリンクを使用しようとしています。ページの変更後に Alertify が機能しなくなることを除いて、すべて問題ありません。
jquery-turbolinks gem をインストールしてパッチを当てましたが、効果はありませんでした。
また、alertify 関数をラップして page:change でトリガーしようとしましたが、やはり喜びはありません。
ターボリンクに問題がある人はいますか?
Alertify 0.4.0 (現在は RC1) でこれに遭遇した人は、使用している Alertify 要素をリセットすることでこれを解決できます。私の場合、それは Alertify.dialog でした:
Alertify.dialog.el = false
// Do your normal JS stuff
これについての私の大雑把な理解では、Alertify はダイアログ要素が作成されたと考えますが、Turbolinks がページをロードすると、その要素は破棄されます。Alertify にそれが破棄されたことを伝える必要があり、Alertify はそれを再作成します。
詳細についてサポートが必要な場合は、お知らせください。
私が知る限り、Turbolinks はグローバル スコープを台無しにしており、アラートが DOM に適切に接続されていません。
したがって、私の回避策は次のとおりです。
//Keep global reference to alertify init() function
$(document).on('ready',function(){
window alertifyInit = alertify.init;
});
//re-initialise on page change/load
$(document).on('page:change page:load',function(){
alertifyInit();
});