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

时间:2015-10-15 21:50:02

标签: javascript ember.js ember-cli soundcloud

我正在使用SoundCloud API和Ember Cli

创建我最喜欢的歌曲的音乐播放器组件

当我选择一首歌时,音乐播放器正在播放音频但我现在正试图在当前歌曲结束后播放nextFavorite。

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

这里是音乐控制器

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"但是我需要传递这个最喜欢的歌曲的正确索引我点击asAsAsFavorite

1 个答案:

答案 0 :(得分:1)

对您的代码进行了一些小的重构。添加了收藏夹阵列最喜欢的索引。还提供了一种立即获得下一首歌的方法

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)); 
            } 
        }
    }