私はbackbone.jsを使用してシングルページアプリを作成しています。私はバックボーンに慣れていないので、間違ったセマンティクスは許してください。
私の問題は、ビューをレンダリングするときです。
最初に、いくつかのdom操作(画像スライダー)を実行するjavascriptがindex.htmlにあります。
JSは$(window).load()でラップされているため、開始時にすべて問題ありません。ページがURLからロードされない限り、コードは明らかに実行されません。コードはバックボーンビューまたはルーターからは実行されません。したがって、ページはdom操作なしでロードされます。
ビューのレンダリングおよび初期化関数にコードを挿入しようとしましたが、役に立ちませんでした。このコードをルーターに追加する必要がありますか?それはちょっとしたハックのようです。
「domready」コードはどこに含める必要がありますか?および/またはバックボーンのロード時にビューとそのdom要素を管理するためのより良い方法はありますか?
コード:
home.js
window.HomeView = Backbone.View.extend({
initialize:function () {
this.render();
},
render:function () {
$(this.el).html(this.template());
this.startOrbits();
return this;
},
startOrbits:function(){
$(window).load(function() {
$('#orbit-main').orbit({ fluid: '16x6', swipe:true });
$('#orbit-news').orbit({ fluid: '8x6', bullets: true, directionalNav:false, captions:true, advanceSpeed: 9000});
});
},
});