簡體   English   中英

為什么dijit.form.Select具有方法setStore()而dijit.form.FilteringSelect沒有方法?

[英]Why does dijit.form.Select have method setStore() while dijit.form.FilteringSelect doesn't?

我具有扎實的Java背景,去年在ExtJS上工作了很多年之后,我現在在Dojo方面面臨着新的挑戰。 問題是,我仍然不明白為什么API中會有如此多的不一致之處。

為什么此方法不適用於dijit.form.FilteringSelect:

setStore(store, selectedValue, fetchArgs)

而用於dijit.form.Select嗎?

看到:

http://dojotoolkit.org/api/?qs=1.9/dijit/form/Select#1_9dijit_form_Select_setStore http://dojotoolkit.org/api/?qs=1.9/dijit/form/FilteringSelect

Dojo庫隨着時間的推移而“發展”。 由於Dojo是開源的,因此它就像許多人一樣為您和我做出了貢獻。 一開始,並不是每個人都遵循相同的約定和標准。 繼續努力進行“拋光” Dojo,在將來的發行版中,將會有更多的一致性。

查看此特定示例,我們看到目標是設置小部件的“ store”屬性。 我相信執行此任務的正確方法是:

var myWidget = new MyWidget({ store: myStore });

將在小部件構建期間使用,或者稍后使用以下步驟對其進行設置:

myWidget.set("store", myStore);

這是在小部件中設置任何屬性的通用方法。

以上兩種技術對於Select和FilteringSelect都應該可以正常工作。 當開發人員明確添加該選項時,其中一個小部件具有附加的“非標准”設置器機制這一事實很可能來自歷史。 當標准化出現時,該方法可能已被刪除,但是存在這樣的危險,即任何現有的應用程序都將停止工作,這將被認為更糟。 因此,我們應該真正考慮使用非標准選項。 我本來希望看到它在API參考中被記錄為已棄用(但沒有)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM