I have three angular-ui-bootstrap typehead in a form
<form>
<div class="form-group">
<label for="fieldname" class="col-md-3 control-label">Name</label>
<div class="col-md-6">
<input type="text" ng-model="newItem.customSelected" typeahead="name as name.name for name in members | filter:{name:$viewValue}" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="fieldhname" class="col-md-3 control-label">House name</label>
<div class="col-md-6">
<input type="text" ng-model="newItem.customSelected1" typeahead="house_name as house_name.house_name for house_name in family | filter:{house_name:$viewValue}" class="form-control" />
</div>
</div>
<div class="form-group">
<label for="" class="col-md-3 control-label"><?php echo $this->lang->line('label_family_id'); ?></label>
<div class="col-md-6">
<input type="text" ng-model="newItem.customSelected2" typeahead="fm as fm.family_reg_no for fm in family | filter:{family_reg_no:$viewValue}" class="form-control" />
</div>
</div>
<div class="col-md-3"></div>
<input type="button" class="finish btn-success btn" ng-click="search(newItem)" value="Search"/>
</form>
the search button calls the function,
$scope.search = function(item) {
item['id']=item.customSelected.id;
item['family_id']=item.customSelected1.id;
item['family_id']=item.customSelected2.id;
delete data.customSelected;
FamilyMemSearch.get(item, function (response) { // success
$scope.tableData = response.data; // store result to variable
}, function (error) { // ajax loading error
Data.errorMsg(); // display error notification
});
};
but it shows an error customSelected1,customSelected2 is undefined.
ngModel
automatically creates properties only after the value changes first time. If you don't initialize theitem.customSelected1
,item.customSelected2
and click search right after page loads, the values will beundefined
.Try initializing your
item.customSelected1
anditem.customSelected2