Javascript 道场:关于';类扩展';?
我想让一个新的小部件javascript类[Label]看起来像dijit.button。 因此,我查看了dijit按钮的源代码,并尝试复制它 它以declare开始,我使用dijit.form.\u FormWidget作为超类 但当我在网页上运行它时,它不起作用,我在Firefox中使用Firebug进行调试,它返回“this.containerNode为null” 我不知道如何设置containerNode参数 有谁能回答我,是什么问题导致了这种情况的发生Javascript 道场:关于';类扩展';?,javascript,dojo,extend,Javascript,Dojo,Extend,我想让一个新的小部件javascript类[Label]看起来像dijit.button。 因此,我查看了dijit按钮的源代码,并尝试复制它 它以declare开始,我使用dijit.form.\u FormWidget作为超类 但当我在网页上运行它时,它不起作用,我在Firefox中使用Firebug进行调试,它返回“this.containerNode为null” 我不知道如何设置containerNode参数 有谁能回答我,是什么问题导致了这种情况的发生 另外,我对javascript有
另外,我对javascript有点陌生。一个简单的dijit供您参考。JavaScript:
dojo.declare("com.example.Label", [dijit._Widget, dijit._Templated], {
templateString: dojo.cache("com.example", "templates/Label.html"),
value : ""
});
HTML模板:
<div><span>${value}</span></div>
嗯,你能给我看看代码吗?dijit.form.Button在其模板文件(templates/Button.html)中设置containerNode。您是否为小部件使用模板文件?如果没有,您必须在小部件的
buildRendering
方法中构建HTML(包括设置containerNode)。您是经验丰富的Dojo开发人员吗?您所尝试的并不是微不足道的,您需要了解Dojo是如何工作的,然后才能进行操作。否则,很容易引入您永远无法发现的细微错误。
var label = new com.example.Label({value : "Hello"});