将参数传递给dojo 1.7+中的事件

时间:2014-08-04 08:12:02

标签: javascript dojo arguments parameter-passing


我想在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()函数。
在此先感谢:)

2 个答案:

答案 0 :(得分:0)

Dojo提供了一个名为 partial()的函数。查看herehere了解文档和教程。

它基本上允许将参数永久地附加到函数中。 所以你的代码看起来像这样。

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将参数传递给函数的方法,请添加您的答案。 :)