我有我的angularjs视图我必须使用保存在数据库中的值填充我的选择框,并允许选择其他选项。我试过这样的:
<div class="form-group">
<label class="control-label" for="status">Status zaposlenika</label>
<div class="controls">
<select required name="status" class="form-control" ng-model="employee.status" ng-options="statusType.name for statusType in statusTypes" >
</select>
</div>
但我的观点并未填充我的价值。 ({{employee.status}} - &gt;“test”)
$scope.statusTypes = [
{
name: 'test'
},
{
name:'Test1'
},
{
name: 'Test2'
},
{
name:'Test3'
}
];
我该怎么做?
修改
我的模型employee.status填充了值“test”。但我的选择框不是。其他值列为选择项。如何设置我的数据库中保存的默认值,以便在我的选择框中预先选择。
答案 0 :(得分:1)
您的模型employee.name
是一个字符串,选择框绑定到类似于{name: "Test1"}
的对象。因此,如果要从statusTypes
中选择选项,则必须在对象数组中找到相应的对象。
$scope.statusTypes = [
{name: 'Test1'},
{name: 'Test2'},
{name: 'Test3'}
];
var selectedStatus = $scope.statusTypes.filter(function(type) {
return type.name = 'Test2';
})[0];
$scope.employee = {
status: selectedStatus
};
所以你必须让employee.status
成为statusTypes
数组中的一个对象。
或者其他选项是继续使用employee.status
的字符串并更改ngOptions
以绑定到字符串而不是对象:
ng-options="statusType.name as statusType.name for statusType in statusTypes"