2011-05-09 43 views
0

我想做一個新的窗口小部件的JavaScript類[標籤]它看起來像dijit.button。 因此,我看看dijit Button的源代碼並嘗試複製它。Dojo:有什麼關於'class extend'的嗎?

它以declare開頭,我使用dijit.form._FormWidget作爲超類。

但是,當我的網頁它不工作的運行它,我調試與Firefox中的Firebug並返回「this.containerNode爲空」

我想不出如何設置containerNode參數。

任何人都可以回答我,這是什麼問題導致它發生?

P.S.我對JavaScript有點新鮮。

+0

嗯,你能表現出一定的代碼? dijit.form.Button在其模板文件(templates/Button.html)中設置containerNode。你是否在爲你的小部件使用模板文件?如果你不需要在你的小部件的'buildRendering'方法中構建HTML(包括設置containerNode)。 – Frode 2011-05-09 08:14:37

+0

你是一位經驗豐富的Dojo開發人員嗎?你所嘗試的並不是微不足道的,你需要了解Dojo的工作原理,然後才能做到這一點。否則,很容易引入你永遠無法找到的細微錯誤和錯誤。 – 2011-05-10 09:02:39

回答

1

一個簡單的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> 

用法:

var label = new com.example.Label({value : "Hello"});