javascript - DOJO: Overriding a method in Dijit widget -


i need pass arguments widget watch method can used in callback function

current code:

require(["dijit/form/numbertextbox"], function (numbertextbox) {     var txt = new numbertextbox({}, "text10");     txt.watch("value", function (name, oldvalue, value) {      }); }); 

desired code:

require(["dijit/form/numbertextbox"], function (numbertextbox) {     var txt = new numbertextbox({}, "text10");     txt.watch("value", function (name, oldvalue, value, panelid) {         alert(panelid);     },panelid); }); 

need induct panelid in watch function. have searched docs seems cannot pass arguments watch function. is there way override watch method , make accept arguments?

you can wrap callback function in closure keeps local reference panelid variable. assumes panelid not meant change across invocations of watch function.

require(["dijit/form/numbertextbox"], function (numbertextbox) {     var txt = new numbertextbox({}, "text10");     var panelid = ... // comes somewhere      (function (panelid) {         txt.watch("value", function (name, oldvalue, value) {             alert(panelid);         });     })(panelid); }); 

the callback function watch function creates closure, can simplify above code just:

require(["dijit/form/numbertextbox"], function (numbertextbox) {     var txt = new numbertextbox({}, "text10");     var panelid = ... // comes somewhere      txt.watch("value", function (name, oldvalue, value) {         alert(panelid);     }); }); 

Comments

Popular posts from this blog

php - regexp cyrillic filename not matches -

c# - OpenXML hanging while writing elements -

sql - Select Query has unexpected multiple records (MS Access) -