私はSocialEngineウェブサイトの提案機能を開発しています。私は挿入されたテキストに基づいて提案をするために、テキストボックスに次のコードを書いています。しかし、注入メソッドは、コントローラによって返されたすべての結果に対して呼び出されていません。それらのいくつかをスキップしています。私はそれが各結果のために一度呼び出すと期待します。私は、コントローラから返されたデータは、それが複数の結果を返しているが、一部のインジェクタは結果だけの数が少ないために呼び出さなっているかチェックしてソーシャルエンジンのオートコンプリート友だちリストが正常に動作しない
new Autocompleter.Request.JSON('global_search_field', '<?php echo $this->url(array('module' => 'user', 'controller' => 'public', 'action' => 'suggest','message' => true), 'default', false) ?>', {
'minLength': 1,
'delay' : 50,
'className': 'message-autosuggest',
'injectChoice': function(token){
console.log("called");
if(token.type == 'user'){
console.log("User");
var choice = new Element('li', {
'class': 'autocompleter-choices',
'id':token.guid
});
new Element('div', {
'html': '<a id="'+token.id+'" href="'+token.url+'">'+token.photo+this.markQueryValue(token.label)+'</a>',
'class': 'autocompleter-choice'
}).inject(choice);
}
else {
console.log("Heading");
var choice = new Element('li', {
'class': 'autocompleter-choices',
'id':token.guid
});
new Element('div', {
'html': '<a class="menu-heading" style="margin:-9px;" id="'+token.id+'" >'+this.markQueryValue(token.id)+'</a>',
'class': 'autocompleter-choice'
}).inject(choice);
}
this.addChoiceEvents(choice).inject(this.choices);
choice.store('autocompleteChoice', token);
},
'onPush' : function(){
if($('toValues').value.split(',').length >= maxRecipients){
$('to').disabled = true;
}
}
});
- ここでは、コードです。
アップデート - インジェクタメソッドは最初の10個の値のために呼び出されているあなたはAutocompleter
クラスのインスタンスで作業しているコントローラのみ