【问题标题】:Iterate list of strings in mithril and create drop down迭代秘银中的字符串列表并创建下拉列表
【发布时间】:2018-04-21 14:47:01
【问题描述】:

我尝试了很多互联网搜索,但找不到一个简单问题的答案。我对秘银很陌生(不知道为什么人们选择秘银作为项目:()。我想遍历一个字符串列表并在下拉列表中使用它的值和一个复选框。

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

不确定。怎么做。这是我迄今为止尝试过的,但没有运气。有人可以帮我吗?

【问题讨论】:

    标签: javascript frameworks dom-events mithril.js


    【解决方案1】:

    view 函数的开头定义一个数组:

    const filterOptions = ['Pending', 'Paid', 'Rejected'];
    

    但稍后在执行列表迭代的视图代码中,filterOptions 应该是具有list 属性的对象:

    filterOptions.list.map(filter =>
    

    应该是filterOptions.map(filter =>

    您的代码可能存在其他问题,但如果没有看到传递args 的包含组件,就无法判断。您可能会发现询问Mithril chatroom 更有帮助,我和其他许多人都可以在此讨论和协助解决棘手的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-01
      • 2012-05-28
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2016-06-27
      • 2022-01-24
      • 1970-01-01
      相关资源
      最近更新 更多