使用Spotify搜索音樂曲目的快速項目...將曲目名稱添加到文本區域,並生成與藝術家匹配的曲目ID列表姓名和專輯名稱+藝術作品...下面是我到目前爲止正在處理的代碼的示例...卡住獲取專輯名稱/專輯圖像和藝術家姓名...使用Spotify API搜索曲目使用Spotify API添加專輯名稱和藝術家姓名
示例 - 我正在使用是: 追蹤:所有我的 結果應該是藝術家:約翰傳奇 軌道ID是正確的:3U4isOIWM3VvDubwSI3y7a
顯示爲第一個....
http://jsfiddle.net/61f64ccq/2/
而且(更新該位......)
http://jsfiddle.net/UT7bQ/212/ {{名}} - {{this.artists.name}} 試圖爲Handlebar.js用於添加代碼從以.json數據獲取藝術家名稱...
下面的第一個例子....
使用純JS/Handlebar.js和HTML5 ....任何幫助將是巨大的...嘗試{{artists.name}}但沒有發生任何事情...的JavaScript代碼
<div class="container">
<h1>Search for a Track - Spotify</h1>
<form id="search-form">
<input type="text" id="query" value="" class="form-control" />
<input type="submit" id="search" class="btn btn-primary" value="Search" />
</form>
<div id="results"></div>
</div>
<script id="results-template" type="text/x-handlebars-template">
{{#each tracks.items}}
<div >{{id}} -
<br /> {{name}} <br/></div>
// Issue - Image
<div style="border:1px solid red; background-image:url({{images.2.url}})" data-album-id="{{id}}" class="cover"></div>
// Issue - Artist Name and Album Name
<div style="border:1px solid green; "> Artist name = { } - Album name = { } </div>
部分 -
<script>
var templateSource = document.getElementById('results-template').innerHTML,
template = Handlebars.compile(templateSource),
resultsPlaceholder = document.getElementById('results'),
playingCssClass = 'playing',
audioObject = null;
var fetchTracks = function (albumId, callback) {
$.ajax({
url: 'https://api.spotify.com/v1/albums/' + albumId,
success: function (response) {
callback(response);
}
});
};
var searchAlbums = function (query) {
$.ajax({
url: 'https://api.spotify.com/v1/search',
data: {
q: query,
type: 'track'
// Gets the track - search query
},
success: function (response) {
resultsPlaceholder.innerHTML = template(response);
}
});
};
// This was for playing the Track in your window... Not working in the Track format...
results.addEventListener('click', function (e) {
var target = e.target;
if (target !== null && target.classList.contains('cover')) {
if (target.classList.contains(playingCssClass)) {
audioObject.pause();
} else {
if (audioObject) {
audioObject.pause();
}
fetchTracks(target.getAttribute('data-album-id'), function (data) {
audioObject = new Audio(data.tracks.items[0].preview_url);
audioObject.play();
target.classList.add(playingCssClass);
audioObject.addEventListener('ended', function() {
target.classList.remove(playingCssClass);
});
audioObject.addEventListener('pause', function() {
target.classList.remove(playingCssClass);
});
});
}
}
});
document.getElementById('search-form').addEventListener('submit', function (e) {
e.preventDefault();
searchAlbums(document.getElementById('query').value);
}, false);
</script>
感謝 西蒙