دوجو:الميراث مع القيمة الافتراضية - على mixin لا يحدث
-
21-08-2019 - |
سؤال
أود أن أعلن جديد دوجو الدرجة وراثة من القائمة دوجو الدرجة ، ولكن مع اختيار بلدي من القيم الافتراضية للفصل خصائص.(لا يزال المستخدم تجاوز تلك القيم.)
أنا أعلن نسختي الخاصة من 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
(وهو ما يعني أن الفائقة هو الحصول على صحيح params) ، ولكن hasDownArrow
هو true
(على عكس الافتراضي mixin) ، store
هو null
(و الحرائق وحدة التقارير التي storeUrl
هو "undefined
").
ما الخطأ الذي فعلته ؟
المحلول
عفوا!لقد كان حقا الأشياء على رؤوسهم.لقد وجدت الطريقة المناسبة حولها.الأعمال التالية:
dojo.provide("my.FilteringSelect");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dojox.data.QueryReadStore");
dojo.declare(
"my.FilteringSelect",
dijit.form.FilteringSelect,
{
hasDownArrow : false,
storeUrl : "/",
constructor: function(params, srcNodeRef){
dojo.mixin(this, params);
console.debug("Constructing my.FilteringSelect with storeUrl "
+ this.storeUrl);
this.store = new dojox.data.QueryReadStore({url:this.storeUrl});
}
}
);
لا تنتمي إلى StackOverflow