为什么我不能使用'查询'?自动完成主干

时间:2014-09-30 22:00:00

标签: jquery backbone.js autocomplete

我正在尝试使用自动完成搜索来处理我的小应用,但出于某种原因,我无法使用“查询”这个词。

当我使用此代码时,

$.param({movieName: $('form#autocomplete-remote input[name=search]').val() 
  }); 
},

我得到的网址http://api.themoviedb.org/3/search/movie?api_key=a8f7039633f2065942xx8a28d7cadad4&movieName=movie给出了404

要使用url,我必须用查询替换movieName这个词,但是当我这样做时,我收到此错误Uncaught TypeError: Cannot read property 'query' of undefined

任何人都可以解释为什么我不能使用查询这个词吗?

//编辑。我忘记了我的部分代码,

.resultsView.collection.parse = function(resp) {
  return resp.results.moviematches.movieName;
};

//编辑。让我只粘贴我的整个代码

%form#autocomplete-remote
  %input{:autocomplete => "off", :name => "search", :style => "width: 200px", :id => "movieName"}/

:javascript

  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 = 'a8f7039633f2065942xx8a28d7cadad4'

在搞乱之后,我至少发现问题不在于这个词。因为我现在正在使用这个代码

:javascript

autocompleteRemote = new Backbone.AutocompleteList({
  url: function() {
    return 'http://api.themoviedb.org/3/search/movie?api_key=' + api + '&q' + $.param({uery: $('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.uery;
  };

  var api = 'a8f7039633f2065942xx8a28d7cadad4'

即使这会创建所需的网址,我也会收到错误Uncaught TypeError: Cannot read property 'uery' of undefined

1 个答案:

答案 0 :(得分:0)

我认为你必须使用一对名称/值

$.param({name: "movieName", value: $('form#autocomplete-remote input[name=search]').val() 
})

希望有所帮助