angularjs 获取另一个 属性 所选的 ng-repeat 选项以传递到另一个模型

angularjs get another property of the selected ng-repeat option to pass into another model

我有一个用户列表,我在列表上执行了 ng-repeat,如下所示。
我将用户的 ID 传递给模型,但是,我试图将同一选定用户的电子邮件传递给另一个模型,例如:

<span>The selected user's email is : {{myModel.email}} </span>

但我一无所获。失败!我应该怎么做才能修复它?

<div class="form-group">
    <ui-select ng-model="myModel.user" name="user" theme="selectize" required ng-change="myModel.email = user.email" title="Choose user">
        <ui-select-match placeholder="Select user">{{$select.selected.firstName}} {{$select.selected.lastName}}
        </ui-select-match>
        <ui-select-choices repeat="user.id as user in userList | userFilter:$select.search">
            <div ng-bind-html="user.firstName + ' ' + user.lastName | highlight: $select.search"></div>
            <small>
                email: {{user.email}}
            </small>
        </ui-select-choices>
    </ui-select>
    <br/>
    <span>The selected user's email is : {{myModel.email}} </span>
</div>

这是控制器:

$firebaseArray(MyDataBase.ref('users').orderByKey()).$loaded().then(function (res) {
    for (var i = 0; i < res.length; i++) {
        if (res[i].$id !== current.uid) {
            $scope.userList.push({
                id: res[i].$id,
                firstName: res[i].firstName,
                lastName: res[i].lastName,
                email: res[i].email
            });
        } else {
            defaultUser = res[i];
        }
    }
});

先创建一个函数,通过选择的id循环获取对应的email:

$scope.userModelEmail = {};
$scope.getUserEmail = function (id) {

    for (var i = 0; i < $scope.userList.length; i++) {
        if ($scope.userList[i].id === id){

            return $scope.userModelEmail.email = $scope.userList[i].email;
        }
    }

    console.log($scope.userModelEmail.email);

}

当然,使用 ng-change 将 id 传递给函数:

ng-change="getUserEmail(myModel.user)"

你可以在这里反映:

<span>The selected user's email is : {{userModelEmail.email}} </span>