Переберите список строк в мифриле и создайте выпадающий список
Я пробовал много искать в интернете, но не смог найти ответ на простой вопрос. Я очень плохо знаком с мифрилом (не знаю, почему люди выбрали мифрил для проекта:(). Я хочу перебрать список строк и использовать его значение в раскрывающемся списке с флажком.
const DefaultListView = {
view(ctrl, args) {
const parentCtrl = args.parentCtrl;
const attr = args.attr;
const cssClass = args.cssClass;
const filterOptions = ['Pending', 'Paid', 'Rejected'];
// as of now, all are isMultipleSelection filter
const selectedValue =
parentCtrl.filterModel.getSelectedFilterValue(attr);
function isOptionSelected(value) {
return selectedValue.indexOf(value) > -1;
}
return m('.filter-dialog__default-attr-listing', {
class: cssClass
}, [
m('.attributes', {
onscroll: () => {
m.redraw(true);
}
}, [
filterOptions.list.map(filter => [
m('.dropdown-item', {
onclick() {
// Todo: Add click metrics.
// To be done at time of backend integration.
document.body.click();
}
}, [
m('input.form-check-input', {
type: 'checkbox',
checked: isOptionSelected(filter)
}),
m('.dropdown-text', 'Pending')
])
])
])
]);
}};
Точно сказать не могу. Как это сделать. Это то, что я пробовал до сих пор, но не повезло. Может ли кто-нибудь помочь мне в этом?
1 ответ
В начале view
Функция, которую вы определяете массив:
const filterOptions = ['Pending', 'Paid', 'Rejected'];
Но позже в коде представления, где вы выполняете итерацию списка, filterOptions
как ожидается, будет объектом с list
имущество:
filterOptions.list.map(filter =>
Которые должны быть filterOptions.map(filter =>
,
Могут быть другие проблемы с вашим кодом, но невозможно сказать, не увидев содержащий компонент, который передает args
, Возможно, вам будет полезно спросить в Мифриловом чате, где я и множество других людей можем обсудить и помочь в сложных ситуациях.