javascript widget dojo dijit.form

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); }