【问题标题】:How can I toggle a class using a boolean in a Polymer template?如何在 Polymer 模板中使用布尔值切换类?
【发布时间】:2016-09-29 22:04:28
【问题描述】:

希望使用如here 所示的辅助函数来实现此目的。我知道我可以使用一些基本的运算符(即!),但想在模板中使用更多的逻辑。基本上,目的是使用通过iron-media-query 设置的布尔值来切换元素上的类。

伪代码:

<div class$="[[(mobile)?'mobile-styling':null]]"></div>

附:类名不能是布尔变量名。

谢谢

【问题讨论】:

  • Polymer 的绑定语法中不允许大多数表达式。只是属性、函数和否定运算符。
  • 没有辅助函数 Ben。我已经链接到使用这种技术的答案。谢谢

标签: css polymer responsive templating


【解决方案1】:

很遗憾,此功能已被弃用以提高性能。 polymer 1.0+ 仅支持以下:

  1. 属性或子属性路径(用户、地址.street)。
  2. 计算绑定 (_computeName(firstName, lastName, locale))。
  3. 以上任何一项,前面都有否定运算符 (!)。

这是一个如何实现计算绑定的示例:

<dom-module ...>
  <template>
    <div class$="[[hasMobileStyle(mobile)]]"></div>
  </template>
  <script>
    Polymer({
      ...
      hasMobileStyle: function(mobile) {
        return mobile ? 'mobile-styling' : '';
      }
    });
  <script>
</dom-module>

您还可以使用布尔值作为选择器来摆脱计算绑定:

<div class$="mobile-styling--[[mobile]]"></div>

你会在.mobile-styling--true上做一个选择器

您所要求的无法完成。只有三个条件有效,[[(mobile)?'mobile-styling':null]] 不符合条件。

【讨论】:

  • 不,我没有改变问题。我只是用粗体表示没有...查看编辑...
  • 不管怎样,我的帖子还是回答了你的问题:)
  • 嗯,你回答了,但它肯定没有回答我的问题 :) 。 没有使用辅助函数,但是谢谢,我目前正在使用类似的东西..虽然有一种更清洁的方法
  • 显然没有辅助函数就无法实现它,它在文档中明确说明。
  • 那么我猜这个问题的答案是否定的。我现在将其标记为正确,希望将来可以使用此功能!
猜你喜欢
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 2017-09-27
  • 2013-07-05
  • 1970-01-01
相关资源
最近更新 更多