2012-12-31 18 views
1

JS:dijit的小部件 - 处理他们的活动

define(["dojo/_base/declare","dojo/dom", 
    "dijit/_Widget", "dijit/_TemplatedMixin", 
    "dojo/text!./templates/MainViewWidget.html", 
    "dijit/layout/TabContainer", "dijit/layout/ContentPane","dijit/layout/BorderContainer","dijit/form/TextBox", "dijit/layout/AccordionContainer"], 
    function(declare, dom, _Widget, _TemplatedMixin, template){ 
     return declare("package.MainViewWidget", [_Widget, _TemplatedMixin], { 
      widgetsInTemplate: true, 
      templateString: template, 
      constructor: function(){ 

      }, 
      startup: function(){ 

      }, 
      search: function(evt){ 
       alert('hi'); 
       alert(evt); 
      } 
     }); 
    }); 

模板/ MainViewWidget.html:

<div class="mainContainer"> 


<div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="design:'sidebar', gutters:true, liveSplitters:true" style="width:100%;height:100%;"> 
    <div data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region:'left', splitter:true"> 
     <h2>List of trips</h2> 
     <br /> 
     <input type="text" data-dojo-type="dijit.form.TextBox" data-dojo-props="placeHolder:'Search...'" data-dojo-attach-event="onchange:'search'"/> 
     <br /> 

    </div> 


    <div data-dojo-type="dijit.layout.TabContainer" data-dojo-attach-point="tabContainerDiv" data-dojo-props="region: 'center', tabPosition: 'top', tabStrip:'true', style:'width:80%;height:100%'"> 
     <div data-dojo-type="dijit.layout.ContentPane" title="Summary" data-dojo-props="selected:'true', title:'About'">Welcome. Navigate through the Left pane.</div> 
    </div> 
</div> 
</div> 

的事情是,我想捕捉的TextBox事件。我正在寻找这样做,只需标记,你可以从data-dojo-attach-event="onchange:'search'"看到。我已经尝试了很多变化,我无法让它工作。基本上我想要的是在JS中定义一个函数,并将其作为处理程序附加在标记中。请帮忙。

+0

你在dojo 1.10中试过吗?它在我的小部件中工作。 – GuyT

回答

0

这不被支持,悲哀。我花了大约两个小时才发现这一点。您的模板中具有属性的任何节点都会被_TemplatedMixin._attachTemplateNodes忽略(请参阅line 177)。换句话说,data-dojo-attach-event只会绑定到纯DOM节点(不是Dijits)。

这至少适用于v1.8。附加处理在v1.9中有所不同(有一个_AttachMixin),所以它可能在那里工作。

0

尝试:

data-dojo-attach-event="onChange:search" 

驼峰的onChange,和周围的搜索没有引号。

+0

已经做到了,仍然搜索不到。 – prongs

相关问题