J'essaie d'utiliser la fonction de saisie semi-automatique dans Jquery-UI. Le backend semble fonctionner. Il imprime les objets corrects et renvoie l'objet json correct, cependant, la fonction _render ne se déclenche pas.La fonction _render de Jquery-UI ne fonctionne pas en saisie semi-automatique
Javascript:
var app = window.app = {};
app.Problems = function() {
this._input = $('#problems-search-txt');
this._initAutocomplete();
};
app.Problems.prototype = {
_initAutocomplete: function() {
this._input
.autocomplete({
source: '/search_for_problems',
appendTo: '#problems-search-results',
select: $.proxy(this._select, this)
})
.autocomplete('instance')._renderItem = $.proxy(this._render, this);
},
_render: function(ul, item) {
var markup = ['<span class="name">' + item.name + '</span>'];
console.log("trying to render");
return $('<li>').append(markup.join('')).appendTo(ul);
},
_select: function(e, ui) {
this._input.val(ui.item.name);
return false;
}
};
HTML:
<div class="problems-search">
<input type="text" id="problems-search-txt" autofocus>
<div class="results" id="problems-search-results"></div>
</div>
<script>
new app.Problems;
</script>
Ruby on Rails
classe ProblemsController < ApplicationController
def search_for_problems
@problems = Problem.search(params[:term])
logger.debug "there are #{@problems.count} problems with the term"
@problems.each do |problem|
logger.debug problem.name
end
respond_to do |format|
format.html
format.json { @problems = Problem.search(params[:term]) }
end
end
end
Jbuild er:
json.array!(@problems) do |problem|
json.name problem.name
end
Pourquoi la fonction _render ne fonctionne-t-elle pas?
Ça ne marche toujours pas pour moi – user2871354