2017-05-16 5 views
0

Ich verwende den ember-cli-clipboard Wrapper, um eine Reihe von Schaltflächen innerhalb einer {{#each}}...{{/each}} Schleife zu erstellen, die einen kleinen Text in die Zwischenablage kopieren soll, wenn Sie darauf klicken. Jedes Element hat einen eigenen Text und eine eigene Schaltfläche. Leider kann ich clipboardTarget nicht mit einer dynamischen ID festlegen, so dass die Schaltflächen alle nur vom ersten Element kopieren, anstatt von jedem einzelnen Element zu kopieren.ember-cli-clipboard dynamisch clipboardTarget

Die Komponente sieht wie folgt aus:

<ul> 
    {{#each element as |item|}} 

     {{#copy-button clipboardTarget=".name" success=(action 'copiedCharacter')}} 
      <span class="name">{{item.text}}</span> 
     {{/copy-button}} 

    {{/each}} 
</ul> 

Statt der clipboardTarget=".name" Ich würde so etwas wie ein {{uniqueID}} brauchen:

<ul> 
    {{#each element as |item|}} 

     {{#copy-button clipboardTarget="{{uniqueID}}" success=(action 'copiedCharacter')}} 
      <span id="{{uniqueID}}">{{item.text}}</span> 
     {{/copy-button}} 

    {{/each}} 
</ul> 

die ID zu schaffen, ist nicht das Problem, aber es innerhalb des {{#copy-button ...}} vorbei funktioniert nicht ... irgendwelche Vorschläge?

Antwort

0

können Sie es einfach direkt wie dieses clipboardTarget=uniqueID

 {{#copy-button clipboardTarget=uniqueID success=(action 'copiedCharacter')}} 
      <span id={{uniqueID}}>{{item.text}}</span> 
     {{/copy-button}} 
+1

wie schön ... Ich dachte, es ist eine Syntax Sache .. ich nur ein '#' für ein ID-Element benötigt, um hinzuzufügen, um es zu arbeiten, wie 'clipboardTarget'. Ich habe so etwas wie 'clipboardTargeWithHash' gemacht. Danke für den Tipp! – Viktor

+0

Sie sind willkommen ... nur ein Hinweis gibt es [concat Helfer] (https://emberjs.com/api/classes/Ember.Templates.helpers.html#method_concat), die für einfache Verkettung nützlich sein kann. – kumkanillam