我有一个使用带有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);
})
}
}
答案 0 :(得分:1)
你能否根据输入中的typeahead值修改$ scope.paciente初始值以获得“nome”字段,那么typeahead可以正确解析它吗? e.g。
$scope.paciente={nome: "", primeiro_atendimento:{prescricao_adotada:{medicamentos:[]}}};