社交引擎上的自动填充好友列表无法正常运行

时间:2017-08-23 06:56:47

标签: javascript php json socialengine

我正在为SocialEngine网站开发一个建议功能。我在文本框上编写了以下代码,以便根据插入的文本提供建议。但是没有为控制器返回的所有结果调用inject方法。它正在跳过其中一些。我希望每个结果都能调用一次。这是代码 -

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个值调用Injector方法

1 个答案:

答案 0 :(得分:0)

您正在使用Autocompleter类的实例。您可以在/externals/autocompleter/Autocompleter.js中找到其源代码。注意maxChoices: 10变量。您会注意到它限制了代码中的操作量。您需要做的就是将此变量的值覆盖为您需要的任何值。