我正在这个代码,骨干遗漏的类型错误
<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