当用户键入要搜索的艺术家姓名时,我们希望根据用户目前输入的内容显示建议的下拉列表。
例如,如果用户到目前为止输入了“Bob Dy”,我们希望列出“Bob Dylan”,“Bob Dylan& The Band”和“Willie Nelson; Bob Dylan”,就像标准的Spotify Radio一样App确实。
我们正在尝试使用Search API调用来检索要显示的艺术家列表。我假设我们想要使用models.SEARCHTYPE.SUGGESTION选项,但是当使用该选项时,我们总是得到一个空列表。当存在完全匹配时,models.SEARCHTYPE.NORMAL选项会返回一个列表,例如输入“Bob”或“Bob Dylan”但不输入“Bob Dy”。
你能否告诉我们我们做错了什么?
我们使用的文档是: http://developer.spotify.com/download/spotify-apps-api/reference/833e3a06d6.html
以下是我们使用的代码:
var search = new models.Search('artist:"Bob Dy"');
search.localResults = models.LOCALSEARCHRESULTS.IGNORE;
search.searchArtists = true;
search.searchAlbums = false;
search.searchTracks = false;
search.searchPlaylists = false;
search.pageSize = 10;
search.searchType = models.SEARCHTYPE.SUGGESTION;
//search.searchType = models.SEARCHTYPE.NORMAL;
search.observe(models.EVENT.CHANGE, function() {
console.log('[models.EVENT.CHANGE observe]', search.artists);
});
答案 0 :(得分:0)
似乎Spotify中的普通搜索输入不支持像“artist:Bob Dy”这样的前缀搜索的自动建议。下面的代码对我有用。
var search = new models.Search('Bob Dy', {
'localResults' : models.LOCALSEARCHRESULTS.IGNORE,
'searchArtists' : true,
'searchAlbums' : false,
'searchTracks' : false,
'searchPlaylists' : false,
'pageSize' : 10,
'searchType' : models.SEARCHTYPE.SUGGESTION
});
search.observe(models.EVENT.CHANGE, function() {
search.artists.forEach(function(artist) {
console.log('[models.EVENT.CHANGE observe] - Found artist %s',
artist.name);
});
});
// Do the search, nothing will be fetched
// if this row is not executed.
search.appendNext();