1
我希望聲明一個新的dojo類,它繼承自現有的dojo類,但是我自己選擇了類屬性的默認值。 (用戶仍然可以覆蓋這些值。)dojo:使用默認值繼承 - mixin不會發生
我聲明我自己的版本的dijit.form.FilteringSelect
這樣的:
- 的
hasDownArrow
屬性默認爲false
(而不是標準true
)和 - 有一個額外的可能的財產
storeUrl
它允許我連接FilteringSelect
到相應的QueryReadStore
。
下面是我做什麼,沒有成功:
dojo.provide("my.FilteringSelect");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojox.data.QueryReadStore");
dojo.declare(
"my.FilteringSelect",
[
dijit.form.FilteringSelect, /* base superclass */
{ hasDownArrow:false, storeUrl:"/" } /* mixin */
],
{
constructor: function(params, srcNodeRef){
console.debug("Constructing my.FilteringSelect with storeUrl "
+ this.storeUrl);
this.store = new dojox.data.QueryReadStore({url:this.storeUrl});
}
}
);
說,我嘗試在HTML這樣一個版本的my.FilteringSelect
聲明產生:
<input type="text" id="birthplace" name="birthplace"
promptMessage="Start typing, and choose among the suggestions"
storeUrl="/query/regions"
dojoType="my.FilteringSelect" />
這確實會創建一個FilteringSelect
與期望的promptMessage
(這意味着超類正確得到參數),但hasDownArrow
是true
(違揹我的默認mi xin)和store
是null
(並且Firebug控制檯報告storeUrl
是「undefined
」)。
我在做什麼錯?