Layout
では、CollectionView
を追加して、onRender
内のSELECTリストを表示しています。その直後、uiハッシュを使用して、ビュー内のすべてのコントロールを有効または無効にします。これはnew App.View.Categories
によって生成されたSELECTに対しては機能しません。Backbone MarioetteレイアウトでのUIハッシュの問題
すべきですか?または、Layout
の中でUIハッシュがRegions
で機能しないのですか?
App.View.UploadFile = Backbone.Marionette.Layout.extend({
template: '#upload-file-template',
regions:{
category: 'td:nth-child(4)'
},
ui:{
inputs: 'textarea, select, .save'
},
onRender: function(){
this.category.show(
new App.View.Categories({
collection: App.collection.categories
}) // generates the SELECT list
);
console.log(this.ui.inputs); // Length 2. Missing select.
console.log(this.$('textarea, select, .save')); // Length 3
this.ui.inputs.prop(
'disabled', (this.model.get('upload_status')!='staged')
);
}
});
エラーはありません。私は上記のいくつかの例console.logを追加しました。セレクタはselectを省略していますが、他の2つの要素を返しています。 2番目のconsole.logでわかるように、同じセレクタが$ worksで囲まれています。 – Bart
ソースを見ると、私は問題があると思う。これらのアイテムは、SELECTアイテムがonRender内に追加される前にバインドされています。おそらく、このようなリージョンをonRender内に追加することはベストプラクティスではありません。お勧めする別のパターンがありますか? – Bart
更新いただきありがとうございます! – Bart