2016-09-29 4 views
0

Хотел бы достичь этого без с помощью вспомогательной функции, как показано на рисунке here. Я знаю, что могу использовать некоторые базовые операторы (т. Е. !), но хотел бы использовать немного больше логики в шаблонах. В основном цель состоит в том, чтобы использовать логическое значение, заданное с помощью iron-media-query, для переключения класса на элемент.Как я могу переключить класс с использованием логического элемента в шаблоне Polymer?

псевдокоде:

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

P.S. имя класса не может быть именем переменной boolean.

Благодаря

+1

Большинство выражений не допускаются в синтаксисе связывания Polymer. Просто свойства, функции и оператор отрицания. –

+0

Возможный дубликат [Условно добавьте класс css в полимер] (http://stackoverflow.com/questions/27228515/condition-add-css-class-in-polymer) –

+0

** Без ** вспомогательной функции Ben. Я уже связался с ответом, который использует эту технику. Спасибо – willsquire

ответ

1

К сожалению, эта функция устарела для повышения производительности. полимер 1.0+ поддерживают только следующее:

  1. Путь к собственности или подпроцессу (пользователи, адрес.стрэйт).
  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]] не соответствует критериям.

+0

Нет, я не изменил вопрос. Я просто помещаю без смелых ... См. Редактирование ... – willsquire

+0

независимо от того, мой пост все еще отвечает на ваш вопрос :) – Bamieh

+0

Ну, вы ответили, но он, конечно, не ответил на мой вопрос :). ** Без ** использования вспомогательной функции, но спасибо, я использую что-то похожее на то, что на данный момент .. есть более чистый способ, хотя – willsquire