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

Passing arguement to an event in dojo 1.7+

提问人:Elbassel 提问时间:8/4/2014 最后编辑:frankElbassel 更新时间:2/24/2016 访问量:1288

问:


我想将参数传递给 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')”“ 但是在 dojo 中,我必须使用这个: data-dojo-attach-event=”
onClick
_sortBy“
我想将函数 sortBy( ) 绑定到一个按钮, 如何将 sortType 传递给 sortBy( ) 函数。
提前致谢:)

JavaScript Dojo 参数 传递

评论


答:

0赞 frank 8/4/2014 #1

Dojo 提供了一个名为 partial() 的函数。查看 此处此处 获取文档和教程。

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

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 
            };
        }
);

评论

4赞 Elbassel 8/4/2014
感谢您的回复。这是以编程方式完成的,但是如何传递参数抛出html,例如:input type=“button” data-dojo-attach-event=“onClick: _sortBy('date')”
0赞 Himanshu 2/24/2016 #2

您可以将参数保留为相应 HTML 元素中的属性,并可以通过函数中访问它。这是我目前使用的方式sortTypeevent.target.sortType

如果您找到了一种将参数传递给函数的方法,请添加您的答案。:)data-dojo-attach-event