我有Dijit.form.FilteringSelect,它从下拉列表的Web服务内容动态加载。
我想预先选择第一个元素。我怎么能这样做?
答案 0 :(得分:2)
这取决于您的实施。
如果您先加载数据,然后创建dojo/store/Memory
,然后输入dijit/form/FilteringSelect
:
// sync only for dojo/store/Memory
var store = filteringSelect1.store;
filteringSelect1.set("value", store.getIdentity(store.data[0]));
更强大的同步或异步方式是查询商店:
when(store.query(function(item, index, items) {
return index == 0;
}), function(results) {
filteringSelect2.set("value", store.getIdentity(results[0]));
});
请参阅jsFiddle中的这两个示例:http://jsfiddle.net/phusick/DaA3a/
如果您的filteringSelect
由dojo/store/JsonRest
备份,则您的REST服务必须支持index
查询(除了id
查询):
restStore.query({ index: 0 }).then(function(item) {
filteringSelect1.set("value", restStore.getIdentity(item));
});
在jsFiddle上查看更复杂的示例(通过sinon.js fakeServer模拟这样的REST服务):http://jsfiddle.net/phusick/pGt5n/