【问题标题】:Is it possible to pass a function on input to another component in Polymer是否可以将输入上的函数传递给 Polymer 中的另一个组件
【发布时间】:2017-12-19 09:21:44
【问题描述】:

我想在智能和哑组件(逻辑和表示组件)上重构我的代码,我想知道是否可以在输入中传递函数并从主机组件触发它(例如在 Angular 中)。

【问题讨论】:

    标签: javascript data-binding polymer


    【解决方案1】:

    这是可能的。我采用这种方法来拥有一个模型数据组件和一个带有切换的单独过滤组件,该组件将通过如下属性将函数传递给模型组件:

    <my-model id="modelData" items="{{items}}" filters="{{filters}}"></my-model>
    
    <my-filter id="listFilter" active-filter="{{filters}}"></my-filter>
    

    &lt;my-filter&gt;内:

    static get properties() {
      return {
        activeFilter: {
            type: Object,
            notify: true
        }
      }
    }
    
    apply() {
      this.activeFilter = this._compute(this.$.myToggle.value)
    }
    
    _compute(toggle) {
      return function(item) {
        return item.condition == toggle
      }
    }
    

    &lt;my-model&gt;内:

    _filterModel(model, filters) {
      for (let item of model) {
        if (filters(item)) {
          this.push('filteredList', item)
        }
      }
    }
    

    虽然我这样做只是为了证明概念,但通常我只是传递要修改的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多