2017-08-11 71 views
0

我使用loadApprovers()函数从后端通过不同的数组获取用户的名称和相应电子邮件。我想在选择用户名时将用户电子邮件提交给后端。我在select元素中使用了ng-options。在ng选项中定义值属性

HTML:

<div class="groups list list-insert" ng-init='request.loadApprover()'> 
     <label for="approver1_name" class="item item-input"> 
     <select ng-options="item as item.approver1_name for item in request.approver1_email track by item.id" ng-model="request.approvalObject.approver1_email" ></select> 

控制器:

constructor($http, $scope, socket) { 

    this.$http = $http; 
    console.log("testentry"); 
    this.approver1_email=[]; 
    this.approver1_name=[]; 

} 

loadApprover($http, approver1_email, approver1_name) { 
    this.$http.get('/api/approvals', approver1_email, approver1_name) 
    .then((data) => { 
     console.log(data.data) 
     this.approver1_email=data.data; 

    }) 
} 

我无法提交用户的电子邮件时,我选择的用户名。我是AngularJS的初学者,除此之外,我无法再了解如何编写ng-options。有人可以指导我如何编写更好的代码来完成此任务?

+0

如果你只是想的电子邮件属性选择的对象,你可以做'ng-options =“item.email as item.approver1_name ...”' – devqon

回答

0

我想提交用户电子邮件到后端,当我选择用户 名称。

如果您想在每次选择用户名时都这样做,请尝试使用ngChangedocumentation

这将是这个样子......

HTML:

<div class="groups list list-insert" ng-init='request.loadApprover()'> 
     <label for="approver1_name" class="item item-input"> 
     <select ng-change="changed(item)" ng-options="item as item.approver1_name for item in request.approver1_email track by item.id" ng-model="request.approvalObject.approver1_email" ></select> 
</div> 

的JavaScript:

$scope.changed = function(item) { 
     //logic goes here (item.email is probably the person's email) 
    } 

例子:Plunker