使用 Ember 访问模型索引并发送到控制器

Accessing model index and send to controller with Ember

我正在用我最喜欢的 SoundCloud API 和 Ember Cli

歌曲构建一个音乐播放器组件

音乐播放器随时播放 select 一首歌曲的音频,但我现在正尝试在当前歌曲播放完毕后播放下一首收藏夹。

我需要访问我收藏夹的收藏夹模型索引才能获得下一个收藏夹

这里是音乐控制器

player: Ember.computed.alias('controllers.player')

actions: {
    setAsFavorite: function (favorite) {
        var favorites, favorite
        favorites = this.get('model');
        if (favorite != null) {
            this.get('player').set('favorites', favorites);
        }
        if (favorite != null) {
            return this.get('player').send('selectFavorite', favorite, 0);
        }
    }
}

如何访问我收藏夹中的收藏夹索引?

return this.get('player').send('selectFavorite', favorite, 0);

在上面的代码中,我将其作为“0”传递,但我需要传递我点击的最喜欢歌曲的正确索引作为 setAsFavorite

对您的代码进行了一些小的重构。添加收藏夹数组的收藏夹索引。还提供了一种立即获取下一首歌曲的方法

actions: {
        setAsFavorite: function (favorite) {
            var favorites = this.get('model');
            var player = this.get('player');

            if (Ember.isPresent(favorite)) {
              player.set('favorites', favorites);
              player.send('selectFavorite', favorite, favorites.indexOf(favorite)); 
              // for next song 
             //  player.send('selectFavorite', favorite, favorites.nextObject(favorite)); 
            } 
        }
    }