【发布时间】:2014-05-05 08:52:33
【问题描述】:
我正在创建一个基于音乐的应用程序,它使用 Knockout 进行绑定。应用程序中列出的所有曲目都是从 Soundcloud 外部提取的,如下所示:
$.getJSON('http://api.soundcloud.com/users/guy-j/tracks.json?client_id=c4bc3b1a93902abecbaca3fa4582d970', {limit: 200}, function(data) {
vm.tracks($.map(data, function (track) {
return {
artwork: track.artwork_url,
avatar: track.user.avatar_url,
date: track.created_at,
description: track.description,
duration: track.duration,
listens: track.playback_count,
permalink: track.permalink_url,
purhcase: track.purchase_url,
stream: track.stream_url,
track: track.title
};
}));
});
这些轨道(一旦获取)被推送到一个空白的 observableArray 中,然后 HTML 视图被绑定到该数组并生成一个轨道列表。我有这样的音频播放/暂停:
要选择/播放曲目,从 observableArray 生成的每个 <li> 都有一个名为“goToTrack”的点击处理程序,然后它将一个名为“self.chosenTrackData”的可观察对象传递给选定的曲目,然后我的音频元素与“ selectedTrackData' 播放所选曲目。
我现在的问题在于,我不太确定使用 Knockout 处理下一个/上一个曲目功能的最佳方法是什么。我必须知道如何区分 observableArray 中的当前点,然后是 ++ 或 -- 取决于您选择的选项?
任何帮助将不胜感激,因为我仍在学习 Knockout!
【问题讨论】:
标签: javascript jquery knockout.js knockout-2.0