2014-09-30 20 views
0

我試圖讓自動填充搜索在我的小應用上工作,但由於某種原因,我無法使用「查詢」一詞。爲什麼我不能使用'查詢'?自動填充骨幹網

當我使用此代碼,

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

我得到這給404

的URL網址http://api.themoviedb.org/3/search/movie?api_key=a8f7039633f2065942xx8a28d7cadad4&movieName=movie工作,我不得不更換與查詢詞的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' 

搞亂了我至少發現問題不在於這個詞。因爲我使用thise代碼現在

: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即使這將創建所需的URL。

+0

一個或以上的變量是不確定的,並不一定與實際的字做「查詢」。你確定'查詢'是被定義的嗎? – Pete 2014-09-30 22:08:14

+0

就像我說過的,當我使用單詞'query'時,我只會得到這個錯誤,我可以使用任何單詞,至少我的JS工作。當我使用'查詢'時,會出現該錯誤。 – 2014-09-30 22:15:47

回答

0

我認爲你必須使用一對名稱/值

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

希望幫助

+0

當我這樣做時,我只是將東西添加到url http://api.themoviedb.org/3/search/movie?api_key = a8f7039633f2065942xx8a28d7cadad4&name = query&value = inception',所以恐怕這也不是它。我正在考慮將來自searchfield的輸入存儲在一個變量中,然後將其插入到url中。 – 2014-09-30 23:04:01