无法从选定的选项Angular JS中获取标签

时间:2018-12-14 05:22:49

标签: angularjs

我有一个选择框,正在使用一个有角物体作为值,即

{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传递来进行管理?
或者有一个选项可以让我重新加载选定的对象以同时具有这两个值?

1 个答案:

答案 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>