W poniższym Layout
dodaję CollectionView
, aby wyświetlić listę SELECT w obrębie onRender
. Natychmiast po tym używam funkcji mieszania ui, aby włączyć lub wyłączyć wszystkie kontrolki w widoku. To nie działa dla SELECT generowanego przez new App.View.Categories
.Problemy z haftowaniem interfejsu użytkownika z układem marionetek kręgosłupa
Czy powinien? A może hash interfejsu użytkownika nie działa pod numerem Regions
w obrębie numeru Layout
?
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')
);
}
});
Nie ma błędów. Dodałem kilka przykładowych plików console.logs powyżej. Selektor opuszcza zaznaczenie, ale zwraca pozostałe dwa elementy. Jak widać po drugim pliku console.log, ten sam selektor zawinięty w $ działa. – Bart
Patrząc na źródło, myślę, że widzę problem. Te elementy są powiązane PRZED dodaniem elementu SELECT w onRender. Być może dodanie takich regionów w onRender nie jest najlepszą praktyką. Czy masz inny wzór do polecenia? – Bart
Dziękujemy za aktualizację! – Bart