我有Dijit.form.FilteringSelect它从下拉列表的Web服务内容动态加载。
我想预选第一个元素。我怎样才能做到这一点?
最佳答案
这取决于您的实现。
如果首先加载数据,然后创建为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/
关于javascript - 如何预选Dijit.form.FilteringSelect中的第一个元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12639511/