事件不适用于模板化的 dojo 小部件

Event not working on templated dojo widget

我的小部件制作了表格,但应该发生的事件却没有。单击按钮时,它应该获取输入框中的值,然后将其放入请求的 URL 中,然后将该页面粘贴到结果中 div.

编辑注意: 发现如果我有没有 dijit 按钮类型的 searchNode,事件有效,但如果我应用 dojo-data-type,它不会。

小部件:

/**
 * Widget for creating a quick search form.
 */
define([
    "dojo/_base/declare",
    "dojo/request",
    "dijit/_WidgetBase",
    "dijit/_OnDijitClickMixin",
    "dijit/_TemplatedMixin",
    "dijit/_WidgetsInTemplateMixin",
    "dijit/form/Button",
    "dijit/form/TextBox",
    "dojo/text!./templates/quickSearch.html"
],function(declare, request, _WidgetBase, _OnDijitClickMixin, _TemplatedMixin, _WidgetsInTemplateMixin, Button, TextBox, template){
    return declare("js/widget/SASearch", [_WidgetBase, _OnDijitClickMixin, _TemplatedMixin, _WidgetsInTemplateMixin], {
        //  set our template
        templateString: template,

        //  some properties
        baseClass: "searchWidget",

        //  define an onClick handler
        _onClick: function() {
            var query = this.queryNode.value;
            alert(query);
            request("quick/" + query).then(
              function(text) {
                  this.resultsNode.innerHTML = text;
                  alert(text);
              },
              function(error) {}
            );
        }
    });
});

模板:

<div class="${baseClass}">
    <div class="${baseClass}Query" data-dojo-attach-point="queryNode" data-dojo-type="dijit/form/TextBox"></div> 
    <div class="${baseClass}Search" data-dojo-attach-point="searchNode" data-dojo-type="dijit/form/Button" data-dojo-attach-event="ondijitclick:_onClick">Search</div><br />
    <div class="${baseClass}Results" data-dojo-attach-point="resultsNode"></div>
</div>

您的活动必须是

data-dojo-attach-event="onClick:_onClick"

在按钮上。

另外,对于请求中的 returns,您将不得不使用 dojo.hitch 来解决这个问题。 http://jsfiddle.net/theinnkeeper/qum452gm/