Angularjs和typeahead,如何摆脱[object Object]

时间:2017-09-30 00:46:26

标签: javascript angularjs

我有一个使用带有uib-typeahead的输入文本的视图。 输入文本是一个表单。

加载视图时,输入文本显示" [object Object]"大约5秒钟,然后填充从远程服务器加载的数据。 从远程服务器加载数据后,所有显示都正常。

在视图完全加载来自服务器的数据之前,有没有办法避免将此[object Object]转换为输入文本?

我尝试过ng-cloak,但没有效果。

//标记

<div class="col-sm-9 col-lg-9" id="scrollable-dropdown-menu">
   <script type="text/ng-template" id="templatePac.html">
            <div class="col-sm-12">
               <a href>
                <span ng-bind-html="match.model.nome  | uibTypeaheadHighlight:query"></span>
                <span> - CPF:</span>
                <span ng-bind-html="match.model.cpf || 'sem cpf'"></span> 
               </a>
            </div>
   </script>
    <input type="text" ng-model="paciente"  required
    uib-typeahead="item as item.nome for item in getPacientesByName($viewValue)" 
    ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0}}" 
    typeahead-editable="false" typeahead-select-on-exact="true" query="query"  typeahead-wait-ms="300"  typeahead-loading="loadingLocationsPac"   typeahead-template-url="templatePac.html" typeahead-no-results="noResultsPac" class="form-control">
    <div>
      <i ng-show="loadingLocationsPac" class="glyphicon glyphicon-refresh"></i>
      <div ng-show="noResultsPac">
        <i class="glyphicon glyphicon-remove"></i> Sem resultados
      </div>
    </div>
</div>

// js controller

angular.module('clinang').controller('menuPacientesEvolAtendAddController',  function($scope,$state,$http) {
 $scope.paciente={primeiro_atendimento:{prescricao_adotada:{medicamentos:[]}}};
 ...
 ...

 $scope.getPacientesByName=function(val){
              return $http.get(urlBase+'/configuracao',{params:val}).then( (response)=>{
                   return response.data
               }, (erro)=>{
                      console.log(erro);
              })
        }

    }  

1 个答案:

答案 0 :(得分:1)

你能否根据输入中的typeahead值修改$ scope.paciente初始值以获得“nome”字段,那么typeahead可以正确解析它吗? e.g。

$scope.paciente={nome: "", primeiro_atendimento:{prescricao_adotada:{medicamentos:[]}}};