我想在dojo 1,7+中向一个事件传递一个参数
假设我有以下模块:
define(
[ "dojo/dom", "dojo/dom-style", "dijit/registry", "js/busyIndicator",
"dojox/mobile/ListItem", "dojo/dom-class",
"ppwidgets/MyCommunitesRecentListItem", "js/utils"
],
function(dom, domStyle, registry, busyIndicator, ListItem,
domClass, MyCommunitesRecentListItem, utils) {
return {
sortBy: function(sortType) {
}};
}
);
<h3>In html:</h3>
在普通的html中,我可以这样做:onClick =“sortBy('date')”
但是在道场,我必须使用它:
data-dojo-attach-event =“onClick:_sortBy”
我想将函数sortBy()绑定到一个按钮,如何将sortType传递给sortBy()函数。
在此先感谢:)
答案 0 :(得分:0)
Dojo提供了一个名为 partial()的函数。查看here和here了解文档和教程。
它基本上允许将参数永久地附加到函数中。 所以你的代码看起来像这样。
define(
[ "dojo/dom", "dojo/dom-style", "dijit/registry", "js/busyIndicator",
"dojox/mobile/ListItem", "dojo/dom-class",
"ppwidgets/MyCommunitesRecentListItem", "js/utils" ,
"dojo/_base/lang" // need to add this module.
],
function(dom, domStyle, registry, busyIndicator, ListItem,
domClass, MyCommunitesRecentListItem, utils, lang) {
var myFunc = function( sortType ) {
};
var partialFunc = lang.partial (myFunc, sortType );
return {
sortBy: partialFunc
};
}
);
答案 1 :(得分:0)
您可以将参数sortType
作为属性保存在相应的HTML元素中,并可以通过函数中的event.target.sortType
访问它。这是我目前使用的方式
如果您找到了使用data-dojo-attach-event
将参数传递给函数的方法,请添加您的答案。 :)