我有一个形式
的三个angular-ui-bootstrap typehead<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>
搜索按钮调用函数
$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
});
};
但它显示错误customSelected1,customSelected2未定义。
答案 0 :(得分:4)
ngModel
在第一次更改值后,仅自动创建属性。如果您未初始化item.customSelected1
,item.customSelected2
并在页面加载后立即点击搜索,则值为undefined
。
尝试初始化item.customSelected1
和item.customSelected2
app.controller("yourController",function($scope){
$scope.newItem= {};
$scope.newItem.customSelected1 = {};
$scope.newItem.customSelected2 = {};
});