所以我提前输入一个类型,用户可以在输入表单后选择选项。如果搜索数据存在,则数据描述会自动填充到textarea中。但是,如果搜索数据不存在,描述框会自动填充搜索数据,这不是我想要的,因为它应该是一个空字符串,因为它不存在。
<input type="text" required class="form-control form-control-modal" ng-model="newTreatment.async_selected_treatment" typeahead="treatment as treatment.service for treatment in searchTreatments($viewValue)" typeahead-editable="false" typeahead-on-select="searchTreatment($item)" focus="true" placeholder="CPT Code" >
<textarea class="form-control required form-control-modal" rows="3" ng-if="newTreatment.async_selected_treatment.id == 'null'" ng-model="newTreatment.async_selected_treatment.description" placeholder="Add a Description" ></textarea>
我写了ng-if,但它没有按预期工作。我需要基本检查是否
newTreatment.async_selected_treatment.id
为null(因为它在后端不存在),那么我需要
newTreatment.async_selected_treatment.description
什么都不返回
图片供参考
我对处理这个问题的其他建议/想法持开放态度
工作
不工作
答案 0 :(得分:0)
您可以设置typeahead-editable="false"
并添加ng-blur
指令,请参阅此处:
http://plnkr.co/edit/vcJsfd5ZuwYvirpIGAOx?p=preview
HTML:
Model: {{selected | json}}
<input type="text" typeahead-editable="false" ng-blur="clear()" ng-model="selected" typeahead="state for state in states | filter:$viewValue | limitTo:8" class="form-control">
JS:
$ scope.clear = function(){
if ($scope.selected === undefined) {
$scope.selected = '';
}