Dalam aplikasi saya, saya memiliki kode ini:
postCreate: function(){
// ...
// Change the listWidget's order depending on whether the checkbox is
// ticked or not
self.extraWidget.orderByNameWidget.on( 'click', function( e ){
var orderByNameWidget = this;
field = orderByNameWidget.get('value') ? 'firstName' : 'lastName';
// Make up the collection with the initial filters
var collection = self.store;
if( self.initialFilter ) collection = collection.filter( self.initialFilter );
collection = collection.sort( field );
self.listWidget.set('collection', collection);
});
Kode ini ada agar pengguna dapat mengklik kotak centang (orderByNameWidget), dan mengubah pengurutan kontak. orderByNameWidget adalah Kotak Centang Dojo biasa.
Sekarang, saya memiliki pengaturan global tentang nilai yang seharusnya dimulai. Cara yang lebih rapi untuk mengatasinya adalah dengan mengatur nilai kotak centang, dan kemudian memicu kejadian:
// Artificially emit the initial click if the default says so
if( ConfigVars.workspacesUsersInfo.orderByNameDefault ){
self.extraWidget.orderByNameWidget.set( 'value', true );
self.extraWidget.orderByNameWidget.emit( 'click', { bubbles: true, cancelable: true });
}
Meskipun baris pertama berfungsi (mengatur widget), baris kedua tidak -- peristiwa 'klik' tidak pernah benar-benar terpicu untuk widget.
Saya mencoba setiap kombinasi yang mungkin, memancarkan acara ini di domNode, dll. -- tetapi tidak, sepertinya tidak ingin melakukan apa pun. Di Button.html, dasar untuk CheckBox, Dojo memiliki:
data-dojo-attach-event="ondijitclick:__onClick"
Aku ingin tahu apakah itu masalahnya. Jadi... apa yang harus saya tulis untuk simulasi penuh klik kotak centang? Ada petunjuk?