我能够在我的开发机器上运行typeahead.js插件,但是一旦我将代码推送到heroku,它就停止了工作。这是相关的代码:
if (Meteor.isClient) {
window.onload = function() {
$("input.entry").typeahead({
name: "movies",
remote: {
url: "http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=####################&page_limit=5&q=%QUERY",
dataType: 'jsonp',
template: ["<p><strong>{{title}}</strong></p>"],
engine: Handlebars,
filter: function(parsedResponse) {
var dataset = [];
movies = parsedResponse.movies;
for(i = 0; i < movies.length; i++) {
dataset.push({
value: movies[i].title,
details: movies[i].critics_consensus,
image: movies[i].posters.profile
});
}
return dataset;
}
}
});
$('input.entry').bind('typeahead:selected', function(obj, datum) {
Movies.insert({
name: datum.value,
consensus: datum.details,
image: datum.image,
voters: [],
creator: Meteor.user(),
time: Date.now()
});
});
}
如果我在页面加载后将window.onload
的内容粘贴到javascript控制台中,则可以正常工作。
有谁知道为什么这不能正常工作?
由于
答案 0 :(得分:0)
您的应用是http://api.rottentomatoes.com
吗?否则你会遇到CORS问题。
答案 1 :(得分:0)
我能够通过将typeahead.js代码放在此块Template.entryfield.rendered = function () { ... }