簡體   English   中英

struts2 dojo 按鈕處理程序移入閉合

[英]struts2 dojo button handler moving into a closure

使用 Struts2 與瓷磚和 dojo 一些在過去 2 年發布的東西。 試圖將按鈕 onclick 的 gobal 代碼和表單驗證移動到閉包中。

------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();">

</div>

--------my.js 文件----
// 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.... }


我將 save 和 validate 方法移到了閉包中,並嘗試添加到我的目標方法的連接。 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 應該 go 進入我構造對話框內容的閉包中。

問題:處理這種常見問題的行業最佳實踐是什么?

在構建對話框的 java 腳本中,我放置了構建對話框的 javascript。

作品

function MyNewDialog(參數){

 this.contstrucDialog = function(){
  ...
  dojo.connect(saveButton,"onclick",this,mySaveButtonPressed,true );
   ......
 }

但不喜歡

dojo.connect(saveButton,"onclick",this,mySaveButtonPressed(),true)

這么小的問題,有人可以為我回答。 我什么時候放括號什么時候不放? 我正在調用 function mySaveButtonPressed(),為什么我不使用“mySaveButtonPressed()”?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM