У меня есть компонент следующим образомКак переключить один элемент в списке Ember в Эмбер
{{#md-collection content=model as |item|}}
<div class='collection-item'>
<img src="{{item.url}}" class="asset-thumbnail" />
<div class="asset-url">
{{item.url}}
</div>
<div class="secondary-content">
{{#copy-button
clipboardText=item.url
class="btn"
success="successfulCopy"
}}
{{fa-icon "chain" title="Copy to Clipboard"}} {{unless copied "Copy Link" "Copied"}}
{{/copy-button}}
{{confirmation-link
title="Delete"
action=(route-action "deleteAsset" item)
icon="trash"
message="Are you sure you want to delete this asset?"
confirmButtonText="Yes, Delete Asset"
confirmButtonColor="#FF6666"
classNames="btn delete"}}
</div>
</div>
{{/md-collection}}
и имеет контроллер:
import Ember from 'ember';
export default Ember.Component.extend({
copied:false,
actions:{
deleteAsset(asset){
this.attrs.deleteAsset(asset);
},
successfulCopy(btn){
console.log(this.$(btn));
this.$(btn).toggleProperty('copied', true);
Ember.run.later(()=>{
this.$(btn).toggleProperty('copied', false);
},500);
}
}
});
, когда я нажимаю кнопку с текстом Copy Link
, компонент затем переключает скопированное свойство так, как должно, однако оно переключает свойство для всех элементов в списке, изменяя весь их текст. В действии successfulCopy
У меня есть ссылка на HTML кнопки, которая была нажата. Как бы я переключил скопированное свойство только для одного компонента, чтобы только переключать текст этой кнопки?
Вы должны иметь один атрибут для каждой кнопки с именем 'copied'. Прямо сейчас у вас есть один атрибут, разделяемый между всеми кнопками, тогда всякий раз, когда этот атрибут изменяется, он будет иметь цепную реакцию во всех элементах, которые его используют ... – mk2
Вы отправили код компонента, это код компонента 'copy-button'. покажите нам код, откуда вы вызываете функцию 'successCopy', что это за аргумент - это щелчок по компоненту' copy-button' в этом контексте. – kumkanillam