Использование Struts2 с плитками и додзё, выпущенных за последние 2 года. пытаясь переместить глобальный код
для кнопки onclick и проверки формы в замыкание.
------ страница myjsp.jsp -----
function doDialog(){
var myVar = new MyNewDialog(42);
myVar.showDialog();
}
......
< button ... to show dialog.. onclick="doDialog()" ..../>
< tiles:insertTemplate template="myDialog.jsp"
.....
--------myDialog.jsp----
< script type="text/javascript" src="my.js"/>
....
< div dojoType="dijit.form.Button" iconClass="toolbarIcon toolbarIconSave"
id="mySaveButtonId" showLabel="true" onclick="mySaveButtonPressed();">
--------my.js file----
// This function works because it is global, I want to move it into the closure.
function mySaveButtonPressed(){
.....
validateDialog();
...
}
function validateDialog(){
.. yes it calls the the struts2 validators... but also does some other things.
}
function MyNewDialog(param){
this.contstrucDialog = function(){
...
}
//desired location saving code
//this.mySaveButtonPressed = function(){
//.....<
//validateDialog();
//...
//}
//function validateDialog(){
// .....
// }
..... everything but the method for validating and saving the dialog data....
}
Я переместил методы сохранения и проверки в замыкание и попытался добавить соединение с моим целевым методом. mySaveButtonPressed никогда не выполняется. Я думал, что вся цель подключения заключается в том, чтобы соединить событие виджета с вызовом какого-либо метода.
myjsp.jsp
var myVar = new MyNewPopupStuff (42);
var mySaveButton = dojo.byId ("mySaveBut
\ TonId ");
dojo.connect (mySaveButton, "onclick", myVar.mySaveButtonPressed ());
myVar.contstrucDialog ();
Так как я действительно не хочу помещать много "myVar" в любом месте, я попробовал "this" вместо myVar. не повезло.
ВОПРОС: Как мне переместить этот код в замыкание ????
-------------------------- Была мысль, но не могу проверить ее в данный момент ------
Возможно, dojo.connect должен войти в замыкание, где я создаю содержимое диалога.
ВОПРОС: Какова наилучшая отраслевая практика для обработки этого распространенного делема?