我希望声明一个从现有 dojo 类继承的新 dojo 类,但我自己选择了类属性的默认值。(用户仍然可以覆盖这些值。)
我正在声明我自己的版本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
(与我的默认混合)和store
是null
(并且 Firebug 控制台报告storeUrl
是“ undefined
”)。
我究竟做错了什么?