我有像这样的ToolBarButton:
<span data-dojo-type="dojox/mobile/ToolBarButton"
data-dojo-props="label:'Back', moveTo:'config'" ></span>
您可以看到我将moveTo属性声明为&#39; config&#39;但是我怎么能以编程方式改变它呢?
我想重复使用此按钮但我想调用一个函数来修改moveTo的值。
有点像这样:
<span data-dojo-type="dojox/mobile/ToolBarButton" onclick="modifyMoveTo('somePath')"
data-dojo-props="label:'Back', moveTo:'config'" ></span>
答案 0 :(得分:3)
这是模板的一部分吗?如果是这样,你可以给它一个附加点,如
<span data-dojo-type="dojox/mobile/ToolBarButton"
data-dojo-attach-point="myButton"
data-dojo-props="label:'Back', moveTo:'config'" ></span>
然后通过这样做来改变它:
this.myButton.set("moveTo", "somePath");
如果没有,你可以给它一个id,比如说'myButton&#39;,然后从你的代码中使用dojo的注册表实用程序(dijit / registry),并执行以下操作:< / p>
var btn = registry.byId("myButton"); //This will return the widget
btn.set("moveTo", "somePath");
答案 1 :(得分:1)
data-dojo-props
只是一种使用标记设置属性的方法。例如,如果您查看dojox/mobile/ToolbarButton的API文档
,你会看到很多属性。
另外,如果查看方法摘要,您将看到以下方法:
set(name,value)在小部件上设置属性
所以是的,每个小部件都有这个方法,允许你设置你可以在API文档中找到的任何属性。例如:
myToolbarBtn.set('label', 'Back 2');
现在,要获取对要更改的窗口小部件的引用(例如myToolbarBtn
),可以使用dijit/registry
模块,该模块允许您通过DOM节点ID获取窗口小部件,父节点,....
如果您正在使用modifyMoveTo()
之类的全局函数,那么您可以获取event.target
属性来检索DOM节点,然后使用:
require(["dijit/registry"], function(registry) {
var myToolbatBtn = registry.byNode(evt.target);
});
然后您可以通过编程方式访问小部件。或者像理查德所说,你可以使用ID,模板......,