javascript,dojo,在jsp's带有外壳
javascript, dojo, building dialogs in jsp's with enclosures
我在dojo对话框中使用闭包来防止函数和变量发生冲突。
我有一个jsp页面,其中包含一个复杂的对话框。它大部分都在工作。只是一个非常烦人的细节。如果小部件发生更改,我如何通知处理程序方法?我们希望对话框的java脚本尽可能多地保留在闭包中。
由于弹出窗口出现在多个位置,我希望未来的程序员能够用任何东西替换myVar。有没有一种方法可以确定在onChange 中正确放置什么
------jsp页面-----var myVar=新的MyNewPopupStuff(42)
myVar.contrstrucDialog()
……
includeTemplate template="myDialog.jsp"
…..
--------myDialog.jsp----<script type="text/javascript"src="my.js"/>
<div id="myDialogData"dojotype="dijit.layout.ContentPane"region="right"splitter="true"class="data"style="width:50%;"><'/div>
….
--------my.js文件----
函数MyNewPopupStuff(param){this.construcDialog=函数()。。。。。。。while(需要添加更多小部件){fieldHolder=dojo.byId("myDialogData"addWidget(widgetName,myDialogData);}addWidget=函数(fieldHolder,widgetName){//需要在"myVar.bar()"中打印变量的名称(myVar或它可能是什么)dojo.place(newLabel,fieldHolder);var newField=新dijit.form.ValidationTextBox({id:"i"+联系人类型id,name:widgetName,value:值,trim:true,**on更改:**??????当小部件被修改时,我想调用下面的modifyOnChange,而不是其他的modify-on-change。我想我想要像myVar.modifyOnChange????});}this.modifyOnChange=函数(){警报("已修改");}}
如果您使用的框架实现了函数的EcmaScript 5绑定方法,请使用:
onChange: modifyOnChange.bind(this),
其他人自己实现:
onChange: (function(self) {
return function() {
return modifyOnChange.apply(self, arguments);
}
})(this),
myVar.modifyOnChange
可能会起作用,但如果您将代码与您期望持有对象的全局绑定,那么将内容抽象到类中有什么意义呢?如果有人想添加另一个MyNewPopupStuff对象,会发生什么?
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Dojo:访问dijit.form.Select中单击的项目
- onChange不足以从Dojo组合框触发查询
- Dojo XHR将200 OK视为错误
- 日志Javascript&电子(原子外壳)
- Dojo IE DataGrid内联编辑
- 使用COMETD将服务器推送到客户端(dojo)
- 如何在dojo应用程序构建概要文件中加载json文件
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 当与Dojo验证一起使用时,Chrome 41密码保存会做出错误的选择
- 单击Dojo按钮执行PHP脚本
- window.setInterval()的dojo.hatch()作用域
- AJAX之前的Dojo回调
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- 从dojo comboBox中删除选项
- Dojo:TypeError:marketStore.query不是函数
- Dojo dGrid/dStore实时更新
- 如何检索AMD的XHR响应代码(+时间戳)'大型Dojo
- javascript,dojo,在jsp's带有外壳