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>
我有一个用户列表,我在列表上执行了 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>