我有一个选择框,正在使用一个有角物体作为值,即
{identityName:'Passport',identityId:1}
<select name="identityProof" ng-model="identityProof" ng-change="changeProofOfIdentity()" ng-options="identity as identity.identityName for identity in identityProofList track by identity.identityId" id="identityProofList" class="form-control" data-placeholder="" size="1"></select>
我已完成此设置,因此可以在ng-onchange函数中获取身份ID和身份标签。
如您所见,我已经使用track by identity.identityId
了,我只想通过我的identityId来选择选项
$scope.identityProof = {identityId:userDetails.identityId,identityName:""};
现在选择具有给定值的选项,但是当我尝试获取$ scope.identityProof即选择框值时,我仅获取identityId,而不是identityName,因为我看到选择的选项同时具有名称和价值观,
我怎样才能兼得?
是否需要通过使用jquery或javascript通过获取所选值的标签并将其作为identityName传递来进行管理?
或者有一个选项可以让我重新加载选定的对象以同时具有这两个值?
答案 0 :(得分:0)
您可以使用简单选择代替ng-option
。请参见以下示例,让我知道。
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<select name="identityProof" ng-model="identityProof" size="1">
<option ng-repeat="identity in identityProofList" value="{{identity}}">
{{identity.identityName}}
</option>
</select>
<span ng-if="identityProof">Selected value = {{identityProof}}</span>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.identityProofList = [{'identityName':'Passport','identityId':1}];
});
</script>
</body>
</html>