Я пытаюсь расширить меню dat.gui для поддержки нескольких наборов данных по мере их добавления пользователем.Динамическое добавление элементов Dat.gui из массива объектов
Цель состоит в том, чтобы восстановить gui при загрузке нового набора данных. Поэтому в приведенном ниже фрагменте он должен добавить новый слайдер для каждого объекта в данных массива.
function buildGui() {
var gui_data = []
gui = new dat.GUI();
// data is an array of objects
for (var i = 0; i < data.length; i++) {
// create gui folder for each dataset with name var1
gui_data.push(gui.addFolder(data[i].var1))
// add a slider linked to data[i].var2 <- already set as an integer
gui_data[i].frameno = gui_data[i].add(this,data[i].var2).name('var2');
}
}
Последняя строка вызывает ошибку:
TypeError: Cannot read property '0' of undefined
Я знаю, что this
неправильный объект, чтобы пройти, но не могу понять, что я делаю неправильно.
Какая уязвимая строка? –
отредактирован для указания затронутой строки – anemes
Можете ли вы настроить log gui_data непосредственно перед последней строкой и сообщить нам результат? –