javascript - ¿Cómo eliminar todas las opciones de un widget Dijit FilteringSelect?
dojo dijit.form (1)
Traté de eliminar todas las opciones de dijit.form.filteringselect y agregar una opción a dijit.form.filteringselect usando la función siguiente. Sin embargo, me aparece un error: no hay método getOptions y addOption . estoy usando dojo 1.7
function showTablesDropDown(tableDiv){
dijit.byId(tableDiv).removeOption(dijit.byId(tableDiv).getOptions());
dijit.byId(tableDiv).addOption(dojo.create("option", {label:"None", value:"None"}));
}
¿Cómo eliminar todas las opciones de dijit.form.filteringselect y agregar la opción a dijit.form.filteringselect?
El problema aquí es simplemente un ligero malentendido de cómo el FilteringSelect
(y todo lo que hereda de _AutoCompleterMixin
) interactúa con sus datos. Independientemente de cómo esté creando el widget FilteringSelect
, el mecanismo subyacente para controlar sus opciones es un objeto que se adhiere a la API de la Tienda Dojo .
Esto significa que para modificar las opciones de su widget FilteringSelect
, necesita interactuar con esta store
. Configuré este violín para demostrarlo, pero básicamente quieres cambiar tu función a algo como:
function showTablesDropDown(tableDiv){
var filteringSelectWidget = dijit.byId(tableDiv);
// Clear current value since options are changing.
filteringSelectWidget.set("value", "");
var store = filteringSelectWidget.get("store");
var newData = [{label: "None", value: "None"}];
// Give the underlying store a new data array.
store.setData(newData);
}