1

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 コンソールに貼り付けると、正常に動作します。

なぜこれが適切に機能しないのか、誰にも分かりますか?

ありがとう

4

2 に答える 2

0

あなたのアプリはオンhttp://api.rottentomatoes.comですか?そうしないと、CORS の問題が発生します。

于 2013-09-11T03:50:13.653 に答える
0

typeahead.js コードをこのブロックに入れることで、機能させることができましたTemplate.entryfield.rendered = function () { ... }

于 2013-09-11T16:44:44.520 に答える