У меня есть FilteringSelect
с использованием MemoryStore
. Когда пользователь вводит значение, не находящееся в хранилище, они запрашиваются, спрашивая, хотите ли они добавить новое значение в хранилище. Если это так, мы вызываем сервер, создаем новый элемент и в ответ сообщим о событии.Установленное значение на dijit/form/FilteringВыберите после его создания
Абонент темы уведомляется о том, что новый элемент был создан и добавлен в память, который добавляет параметр filteringselect.
На данный момент выбор фильтра по-прежнему имеет тот же самый параметр displayValue, и опция существует в выборе. FilteringSelect.get ("value") все равно возвращает "".
Если вы должны были ввести пробел, то нажмите backspace (в конечном итоге с тем же значением), FilteringSelect.get("value")
вернет правильный идентификатор элемента.
FilteringSelect.set("value", data[0].id)
ничего не делает, исключение не выбрасывается, не влияет.
Вот код, содержит некоторые из случайных вызовов я пытался.
require(["dojo/store/Memory", "dojo/_base/array", "dojo/topic"],
lang.hitch(this, function(Memory, array, topic) {
this.liftStore = new Memory({
data: []
});
array.forEach(data, lang.hitch(this, function(entry, i) {
this.liftStore.data.push({
name: entry.Name,
id: entry.ID,
identifier: entry.ID
});
}));
this.lift.set("store", this.liftStore);
topic.subscribe("LiftLog/NewLift", lang.hitch(this, function(data) {
debugger;
data[0].selected = true;
data[0].identifier = data[0].id;
this.liftStore.data.push(data[0]);
this.lift.reset();
this.lift.set("value", data[0].id);
this.lift.set("value", data[0].id.toString());
}));
}));
Вместо того, чтобы использовать «проталкивания» данных, предпочитают использовать store.put (newItem) Потому что это лучший способ справиться магазин.! –