【问题标题】:Polymer access elements within vaadin-gridvaadin-grid 中的聚合物访问元素
【发布时间】:2018-01-10 12:29:06
【问题描述】:

说明问题的工作 jsbin:http://jsbin.com/nomewa/3/edit?html,console,output

我正在尝试在构成vaadin-grid 的模板内设置notworking 的innerHTML。当说vaadin-checkbox 位于vaadin-grid 内时,目前似乎无法绑定到vaadin-checkbox 的on-change,因为我什至无法访问网格内的元素。

【问题讨论】:

  • 我将从使用稳定的 vaadin-grid 版本开始。 2.0.3 应该是 Polymer 1 的最新版本(最好使用它而不是混合 v3,我理解的性能更好)。

标签: polymer vaadin


【解决方案1】:

当 vaadin-checkbox 位于 vaadin-grid 内时,目前似乎无法绑定到 vaadin-checkbox 的 on-change,因为我什至无法访问网格内的元素。

您可以在列模板中使用声明性事件绑定,因此您不必引用实际的标记元素。

类似这样的:

<vaadin-grid-column>
  <template>
    <vaadin-checkbox on-checked-changed="_myListener">Checkbox</vaadin-checkbo>
  </template>
</vaadin-grid-colum>

【讨论】:

  • 我很清楚我可以在列模板中使用声明性事件绑定这一事实,这是我下面的(有点)粗略修复所依赖的。但是我正在寻找一个实际示例(例如,一个工作的 jsbin)而不重写 vaadin-checkbox,这只有在我的修复中才有可能。
【解决方案2】:

这是尝试一些代码的好方法 (jsbin :) 在这里这段代码有效,但我不知道它是否适合您的需要。 (我只剪切和复制了更改的部分: 在属性声明中,您可以将预值设置为 notWorking 属性。然后您可以在函数中动态更改它。

<iron-ajax url="https://randomuser.me/api?results=10" last-response="{{response}}" auto></iron-ajax>
    <span id="working">Working</span>
    <vaadin-grid id="grid" items="{{response.results}}" style="height: auto;">
      <vaadin-grid-column>
        <template class="header">Name</template>
        <template>[[item.name.first]] [[item.name.last]] <span>{{notWorking}}</span></template>
      </vaadin-grid-column>
    </vaadin-grid>
  </template>
  <script>
    class MyTest extends Polymer.Element {
      static get is() { return 'test-component'; }

      ready() {
        super.ready();
        this.set('notWorking',"test")
        debugger;
      }
    }

这里是工作link

【讨论】:

  • 感谢您抽出宝贵的时间,我目前的问题是我无法在每一行中绑定到 vaadin-checkbox 的 on-changed 事件。您的解决方案不适用于我的情况。我已经构建了一个有点脏的修复程序,每个模板有 1 个 vaadin-checkbox 和 1 个 input type="checkbox",vaadin-checkbox 上的 on-click 事件将其输入绑定到隐藏输入(并触发输入 on-changed) .
猜你喜欢
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 2015-08-12
  • 1970-01-01
  • 2014-12-13
相关资源
最近更新 更多