Aggiornamento
Come di Polymer 1.2.0, è ora possibile utilizzare Compound Bindings per
combinare stringhe letterali e le associazioni in una singola proprietà vincolante o il contenuto del testo vincolante
in questo modo :
<img src$="https://www.example.com/profiles/{{userId}}.jpg">
<span>Name: {{lastname}}, {{firstname}}</span>
e il vostro esempio
<div class$="avatar {{color}}"></div>
quindi questo non è più un problema.
La seguente risposta è ora pertinente solo per le versioni di polimero precedenti a 1.2
Se si sta facendo questo molto, fino a quando questa caratteristica diventa disponibile che è si spera soon si può solo definire la funzione in un unico luogo come una proprietà di Polymer.Base che ha tutte le sue proprietà ereditate da tutti gli elementi polimerici
//TODO remove this later then polymer has better template and binding features.
// make sure to find all instances of {{join(in polymer templates to fix them
Polymer.Base.join = function() { return [].join.call(arguments, '');}
e poi chiamano così:
<div class$="{{join('avatar', ' ', color)}}"></div>
poi quando è introdotta da polimero correttamente, è sufficiente rimuovere quella riga e sostituire
{{join('avatar', color)}}
con
avatar {{color}}
Io lo uso molto in questo momento, non solo per la combinazione di classi in un unico, ma anche cose come i nomi di percorso, unendo con una, e il contenuto del testo generale '/' solo, quindi, invece, uso il primo argomento come colla.
Polymer.Base.join = function() {
var glue = arguments[0];
var strings = [].slice.call(arguments, 1);
return [].join.call(strings, glue);
}
o se è possibile utilizzare le funzioni di ES6 come rest arguments
Polymer.base.join = (glue, ...strings) => strings.join(glue);
per fare cose come
<div class$="{{join(' ', 'avatar', color)}}"></div>
<img src="{{join('/', path, to, image.jpg)}}">
<span>{{join(' ', 'hi', name)}}</span>
della sola base
Polymer.Base.join = (...args) => args.join('');
<div class$="{{join('avatar', ' ', color)}}"></div>
avevo paura di quella risposta ma accetterò come non sembra essere una soluzione migliore. Grazie! – fray88