【问题标题】:Typeahead.js not working on serverTypeahead.js 在服务器上不起作用
【发布时间】:2013-09-11 02:31:43
【问题描述】:

我能够让 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 控制台中,它可以正常工作。

有人知道为什么这不能正常工作吗?

谢谢

【问题讨论】:

    标签: javascript jquery heroku meteor typeahead.js


    【解决方案1】:

    您的应用在http://api.rottentomatoes.com 上吗?否则你会遇到 CORS 问题。

    【讨论】:

    • 是的,我在烂番茄开发者网站上创建了一个应用程序
    【解决方案2】:

    我能够通过将 typeahead.js 代码放入此块 Template.entryfield.rendered = function () { ... } 来使其工作

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 2015-11-24
      • 1970-01-01
      • 2017-05-17
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多