我正在這個代碼,骨幹遺漏的類型錯誤
<script>
autocompleteRemote = new Backbone.AutocompleteList({
url: function() { return 'http://ws.audioscrobbler.com/2.0/?method=artist.search&api_key=cef6d600c717ecadfbe965380c9bac8b&format=json&' + $.param({ artist: $('form#autocomplete-remote input[name=search]').val() }); },
filter: null,
el: $('form#autocomplete-remote input[name=search]'),
template: _.template('<p><%= name.replace(new RegExp("(" + $("form#autocomplete-remote input[name=search]").val() + ")", "i") ,"<b>$1</b>") %></p>'),
delay: 500,
minLength: 3,
value: function(model) { return model.get('name') },
}).resultsView.collection.parse = function(resp) {
return resp.results.artistmatches.artist;
};
</script>
但我試圖將它連接到TMDB API這樣,
autocompleteRemote = new Backbone.AutocompleteList({
url: function() {
return 'http://api.themoviedb.org/3/search/movie?api_key=' + api + '&' + $.param({query: $('form#autocomplete-remote input[name=search]').val()})
},
filter: null,
el: $('form#autocomplete-remote input[name=search]'),
template: _.template(
'<p><%= name.replace(new RegExp("(" + $("form#autocomplete-remote input[name=search]").val() + ")", "i") ,"<b>$1</b>") %></p>'
),
delay: 500,
minLength: 3,
value: function(model) { return model.get('name') }
,
})
.resultsView.collection.parse = function(resp) {
return resp.results.moviematches.query;
};
var api = 'a8f7039633f206xx42cd8a28d7cadad4'
正如你可以看到我改了像url這樣的東西,並把api鍵放入var來清理代碼。我還將artist
改爲query
,這樣可以讓我找回正確的網址。但是在控制檯日誌中出現錯誤,我正在繪製一個白色。
Uncaught TypeError: Cannot read property 'query' of undefined
Backbone.AutocompleteList.resultsView.collection.parse
.extend.set
options.success
fire
self.fireWith
done
callback
源材料可以在這裏找到 - 使用>http://aghull.github.io/coding/2013/03/09/Backbone-autocomplete-lists/自動完成遠程採集
錯誤提示resp.results.moviematches未定義 - 您是否檢查過該響應以驗證它自己? – kinakuta 2014-10-01 09:17:42
嗯,它看起來像'return resp.results.artistmatches.artist;'與audioscrobbler API有關。所以'moviematches'不是什麼。你可能有什麼建議我必須稱之爲從tmdb顯示電影? – 2014-10-01 09:35:03
做一個console.dir(resp.results),以便檢查該響應並查看它包含您感興趣的屬性的位置。我對api一無所知,所以我沒有具體的答案您。 – kinakuta 2014-10-01 09:36:39