我尝试搜索了很多互联网,但找不到简单问题的答案。我是mithril的新手(不知道为什么人们选择mithril作为项目:()。我想迭代一个字符串列表并在下拉框中使用其值来复选框。
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')
])
])
])
]);
} };
不确定。怎么做。这是我到目前为止尝试但没有运气。有人能帮助我吗?
答案 0 :(得分:1)
在view
函数的开头,您定义了一个数组:
const filterOptions = ['Pending', 'Paid', 'Rejected'];
但是稍后在执行列表迭代的视图代码中,filterOptions
应该是具有list
属性的对象:
filterOptions.list.map(filter =>
那应该是filterOptions.map(filter =>
。
您的代码可能存在其他问题,但如果没有看到传递args
的包含组件,则无法判断。你可能会发现问Mithril chatroom更有帮助,我自己和其他很多人可以讨论和讨论。协助处理棘手的情况。