Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么dijit.form.Select有方法setStore(),而dijit.form.FilteringSelect没有?_Javascript_Forms_Api_Select_Dojo - Fatal编程技术网

Javascript 为什么dijit.form.Select有方法setStore(),而dijit.form.FilteringSelect没有?

Javascript 为什么dijit.form.Select有方法setStore(),而dijit.form.FilteringSelect没有?,javascript,forms,api,select,dojo,Javascript,Forms,Api,Select,Dojo,我有坚实的Java背景,在去年使用ExtJS很多次之后,我现在正面临Dojo的新挑战。问题是,我仍然不明白为什么API中存在如此多的不一致性 为什么此方法不适用于dijit.form.FilteringSelect: setStore(store, selectedValue, fetchArgs) 而对于dijit.form.Select 见: Dojo库随着时间的推移而不断发展。因为Dojo是开源的,所以像你我这样的很多人都对它做出了贡献。并非所有人一开始都遵循相同的惯例和标准。抛光Do

我有坚实的Java背景,在去年使用ExtJS很多次之后,我现在正面临Dojo的新挑战。问题是,我仍然不明白为什么API中存在如此多的不一致性

为什么此方法不适用于dijit.form.FilteringSelect:

setStore(store, selectedValue, fetchArgs)
而对于dijit.form.Select

见:


Dojo库随着时间的推移而不断发展。因为Dojo是开源的,所以像你我这样的很多人都对它做出了贡献。并非所有人一开始都遵循相同的惯例和标准。抛光Dojo的工作仍在继续,在未来的版本中,将会有更多的一致性

看看这个具体的例子,我们看到目标是设置小部件的store属性。我认为执行这项任务的正确方法是:

var myWidget = new MyWidget({ store: myStore });
将在小部件构建期间使用,或在以后使用:

myWidget.set("store", myStore);
这是在小部件中设置任何属性的通用方法

上述两种技术对于Select和FilteringSelect都应该可以正常工作。其中一个小部件有一个附加的非标准setter机制,这一事实很可能来自开发人员明确添加该选项时的历史。当标准化出现时,该方法本可以被删除,但存在的危险是,任何预先存在的应用程序都将停止工作,这将被视为更糟糕的情况。因此,我们应该认真考虑非标准的选择。我本希望看到它在API参考中被记录为不推荐的,但没有。

问题是dijit.form.Select上的setStore方法不仅仅是设置存储;它设置所选值以及获取参数。这有助于只打一个电话而不是三个。