Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于其他输入的自动填充_Javascript_Angularjs_Autocomplete - Fatal编程技术网

Javascript 基于其他输入的自动填充

Javascript 基于其他输入的自动填充,javascript,angularjs,autocomplete,Javascript,Angularjs,Autocomplete,我有两个具有特定功能的自动完成选择框,基本上在第一个自动完成中,我有一个接受代码的输入,在这段代码中与标签相关。因此,基本上,当我选择第一个输入的代码时,它会用所选的相关对象自动填充第二个输入。但在第二个输入中,还有一个自动完成功能,因为代码不是必填字段 位在第一个输入(代码)中有一个细节,代码总是2个字符,不多也不少,但用户可以插入2个以上的字符。 在我的代码中,它工作得很好,但有一个细节,输入1(代码)它自动选择对象,第一次输入删除了用户的额外字符,但我需要它们。我如何定制它 我用于自动完成

我有两个具有特定功能的自动完成选择框,基本上在第一个自动完成中,我有一个接受代码的输入,在这段代码中与标签相关。因此,基本上,当我选择第一个输入的代码时,它会用所选的相关对象自动填充第二个输入。但在第二个输入中,还有一个自动完成功能,因为代码不是必填字段

位在第一个输入(代码)中有一个细节,代码总是2个字符,不多也不少,但用户可以插入2个以上的字符。 在我的代码中,它工作得很好,但有一个细节,输入1(代码)它自动选择对象,第一次输入删除了用户的额外字符,但我需要它们。我如何定制它

我用于自动完成的模块就是这个

我的代码是:

<div angucomplete-alt
                                  id="flight_code"

                                  placeholder="flight code"
                                  pause="100"
                                  selected-object="claim.flight_details.flight_code"
                                  local-data="airlines"
                                  local-search="localSearch"
                                  search-fields="code_airline"
                                  title-field="code_airline"
                                  minlength="2"
                                  input-name="operating_airline"
                                  input-class="form-control form-control-small"
                                  match-class="highlight"
                                  field-required="false">

<div angucomplete-alt
                                   local-search="localSearch"
                                  id="operating_airline"
                                  placeholder="Search airline"
                                  pause="100"
                                  selected-object="claim.flight_details.operating_airline"
                                  local-data="airlines"
                                  search-fields="label"
                                  title-field="label"
                                  minlength="1"
                                  input-name="operating_airline"
                                  input-class="form-control form-control-small"
                                  match-class="highlight"
                                  field-required="true"
                                  initial-value="claim.flight_details.flight_code.originalObject">
                                </div>

我解决了我的问题,将de first input code设置为正常输入a,使用指令ngChange检测字符,然后创建搜索对象的承诺,然后使用初始值插入完整输入:

控制器:

 $scope.localSearch = function(str, code_airline) {
  var matches = [];
  code_airline.forEach(function(code) {

      if(str.toString().substring(0, 2).toUpperCase() === code.code_airline){
          console.log("I found him!!");
          matches.push(code);
      }       

  });
  return matches;
};
$scope.automaticFill = function(){
    var str = $scope.claim.flight_details.flight_code;
   if(str.toString().length === 2){
          console.log("Im changed");
       $http.get('data/airlines-companies.json').then(function(response){

        var airlines = response.data; 

            airlines.forEach(function(code) {
            if(code.code_airline === str.toString().toUpperCase())
             $scope.test = code;
            });
        });

      }
};    
Html:


 <input type="text" 
                                class="form-control" 
                                ng-model="claim.flight_details.flight_code" 
                                name="flight_code" 
                                id="flight_code"
                                ng-change="automaticFill()">

<div angucomplete-alt
                                   local-search="tap"
                                  id="operating_airline"
                                  placeholder="Search airline"
                                  pause="100"
                                  selected-object="claim.flight_details.operating_airline"
                                  local-data="airlines"
                                  search-fields="label"
                                  title-field="label"
                                  minlength="1"
                                  input-name="operating_airline"
                                  input-class="form-control form-control-small"
                                  match-class="highlight"
                                  field-required="true"
                                  initial-value="test">