2014-09-25 2 views
0

Я хочу использовать typeahead.js с json-файлом. Но когда я ввожу в input typeahead, запрос ajax не отправляется.Typehead.js не отправляет запрос ajax

JavaScript:

var users = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    limit: 10, 
    prefetch: { 
    url: '/users.json', 
    filter: function(list) { 
     return $.map(list, function(user) { return { name: user }; }); 
    } 
    } 
}); 

users.initialize(); 

$('#prefetch .typeahead').typeahead(null, { 
    name: 'users', 
    displayKey: 'name', 
    // `ttAdapter` wraps the suggestion engine in an adapter that 
    // is compatible with the typeahead jQuery plugin 
    source: users.ttAdapter() 
}); 

рельсы контроллер:

def index 
    @users = User.all 
    @search = User.select :name 
    render json: @search 
end 
+0

Думаю, вам следует заменить «prefetch» ​​на «remote»! – p0k3

+0

Да, это все. большое спасибо – clement

ответ

0

Вот правильный код для использования: В вашем Javascript:

var users = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    limit: 10, 
    remote: { 
    url: '/users.json', 
    filter: function(list) { 
     return $.map(list, function(user) { return { name: user }; }); 
    } 
    } 
}); 
Смежные вопросы