ルーティング/アプリロジックを処理するためにSammy.jsを使用し、テンプレートを作成するためにHandlebars.jsを使用しています。UIを動的にするためにいくつかの簡単なjQueryイベントを設定したいと思います(要素の切り替えなど)。例えば:
$("#availability").click( function(e) {
console.log("hi2");
e.preventDefault();
});
現在、jQueryイベントをSammy.jsアプリ内に配置することでこれを行うことができますが、これは非常に面倒です。
this.get('#q=:query', function(context) {
var query = context.params.query,
loadOptions = {
type: 'get',
dataType: 'json',
data: {query: query},
cache: CACHE_ENABLED
};
context.load("search.php", loadOptions)
.then(function(products) {
context.query = query;
context.products = products.hits.hits;
return context;
})
.partial('/js/templates/search.hb')
.replace('body')
.then( function () {
$("#availability").click( function(e) {
console.log("hi2");
e.preventDefault();
});
});
});
Handlebarsテンプレート自体の内部またはヘルパーを使用してこれらのタイプのjQueryイベントを初期化する方法はありますか?いくつかのカスタムヘルパーを登録しようとしましたが、イベントが発生することはありません。
「UIロジック」は、メインのSammy.jsコードが乱雑になり、読みにくくなるため、メインのアプリケーションロジックとは別にしたいと思います。