に燃えさしリスト内の単一の項目を切り替える方法エンバー
{{#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'というボタンごとに一つの属性を持っている必要があります。現在、すべてのボタン間で1つの属性を共有しています。その属性が変更されると、それを使用しているすべての要素内でチェーン反応が発生します。 – mk2
コンポーネントコードを投稿しました。 'successCopy'関数を呼び出しているところから、この引数である' copy-button'コンポーネントをクリックしたコードを表示してください。 – kumkanillam