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
Post a Comment