2016-09-29 2 views
0

Möchten Sie dies erreichen ohne mit einer Hilfsfunktion wie gezeigt here. Ich weiß, dass ich einige grundlegende Operatoren (d. H. !) verwenden kann, möchte aber etwas mehr Logik beim Templating verwenden. Grundsätzlich ist es das Ziel, den über iron-media-query gesetzten booleschen Wert zu verwenden, um eine Klasse auf einem Element umzuschalten.Wie kann ich eine Klasse mithilfe eines Boolean in einer Polymervorlage umschalten?

Pseudo-Code:

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

P. S. Der Klassenname darf nicht der boolesche Variablenname sein.

Danke

+1

Die meisten Ausdrücke sind in der Bindungssyntax von Polymer nicht erlaubt. Nur Eigenschaften, Funktionen und der Negationsoperator. –

+0

Mögliches Duplikat von [bedingt css class in Polymer hinzufügen] (http://stackoverflow.com/questions/27228515/conditional-add-css-class-in-polymer) –

+0

** Ohne ** Hilfsfunktion Ben. Ich hatte mich bereits mit einer Antwort verbunden, die diese Technik verwendet. Danke – willsquire

Antwort

1

Leider wurde diese Funktion für Leistungsverbesserungen veraltet. Polymer 1.0+ unterstützt nur Folgendes:

  1. Ein Eigenschafts- oder Untereigenschaftenpfad (Benutzer, Adresse.Straße).
  2. Eine berechnete Bindung (_computeName (firstName, lastName, locale)).
  3. Irgendeines der oben genannten, denen der Negationsoperator (!) Vorausgeht.

hier ist ein Beispiel dafür, wie können Sie die Bindung berechnet achieve:

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

und:

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

Sie auch die boolean als Selektor rid der berechneten Bindung erhalten verwenden können Sie würden einen Selektor auf .mobile-styling--true

machen Was Sie fragen, kann nicht getan werden. Nur die drei Bedingungen funktionieren, [[(mobile)?'mobile-styling':null]] entspricht nicht den Kriterien.

+0

Nein, ich habe die Frage nicht geändert. Ich lege einfach ohne in Fett ... Siehe die Bearbeitung ... – willsquire

+0

egal, mein Beitrag beantwortet immer noch Ihre Frage :) – Bamieh

+0

Nun, Sie haben geantwortet, aber es hat sicherlich nicht meine Frage beantwortet :). ** Ohne ** benutze eine Hilfsfunktion, aber danke, ich benutze etwas ähnliches zu dem im Moment .. es gibt einen saubereren Weg obwohl – willsquire

Verwandte Themen