我有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/

如果filteringSelectdojo/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/

10-10 11:50