我希望声明一个从现有 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”)。
我究竟做错了什么?