是否可以更新组件的所有实例上的属性?
如果我在页面上有10个以下组件的实例,我想在所有这些实例上将currentTrack属性设置为false。这可能吗?可以从其中一个组件内部完成吗?
List<String> itor2 = new LinkedList();
for(String s : itor)
itor2.add(s);
我正在使用Ember 2.12
答案 0 :(得分:2)
您可以将Ember.Evented用于此用例。
此处有一个simple twiddle。
答案 1 :(得分:0)
template.hbs
pip install humanize
import humanize
print( humanize.naturalsize( 91157384 ) )
91.2 MB
controller.js
{{your-component-name currentTrack=currentTrack}}
{{your-component-name currentTrack=currentTrack}}
{{your-component-name currentTrack=currentTrack}}
// btn for disabling
<a href="#" class="btn" onclick={{action 'makeAllcurrentTracksFalse'}}>To false</a>
或在your-component-name.js中 - 您可以使用与上述相同的操作,它将应用于所有组件
答案 2 :(得分:0)
如何为您想要实现的目标创建条目。
const SongEntry = Ember.Object.extend({
});
要创建一个您要调用的条目(可能会将一首歌添加到播放列表中?)
songs: [],
addNewSongToList: function(songName) {
const newEntry = MyMusicEntry.create({
isCurrent: false,
title: songName
});
this.get('songs').pushObject(newEntry);
},
activateNewSong: function(newSongToActivate) {
this.get('songs').forEach(s => s.set('isCurrent', false);
newSongToActivate.set('isCurrent', true)
}
模板看起来像这样
{{each songs as |song|}}
{{my-song-component songEntry=song changeSong=(action "activateNewSong")}}
{{/each}}
//我的松-component.js
<div class="song-layout" {{action "changeSong" song}}>