【发布时间】:2018-12-14 13:40:44
【问题描述】:
我有一个选择框,我使用一个角度对象作为值,即
{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,因为我可以看到选择的选项同时具有名称和价值观,
我怎样才能两者兼得?
我是否需要通过获取所选值的标签并将其作为 identityName 传递来使用 jquery 或 javascript 来管理它?
或者有一个选项可以让我重新加载所选对象以同时具有这两个值?
【问题讨论】:
-
如
ng-options的文档中所述,>“在同一表达式中使用select as和track by时要小心。”您真的根本不需要ng-options子句中的identity as部分,它可能会导致某些情况下,选择根本没有任何价值。
标签: angularjs