1

사용자 목록이 있으며, 아래에 표시된 것처럼 목록에서 ng-repeat를 수행합니다.angularjs 선택한 ng-repeat 옵션의 다른 속성을 다른 모델로 전달합니다.

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

하지만 난 아무것도 얻을 :
나는 그러나, 내가 좋아하는 다른 모델에 같은 선택한 사용자의 이메일을 전달하는 데 노력하고, 모델에 사용자의 ID를 전달합니다. 실패! 문제를 해결하려면 어떻게해야합니까? ng-change을 사용

$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); 

} 

물론 :

$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]; 
     } 
    } 
}); 

답변

1

가 해당 메일을 얻기 위해 상기 선택된 아이디를 통해 제 루프 기능을 만들어 여기

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

는 컨트롤러 id를 함수에 전달하는 것 :

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

이며 여기에 반영 할 수 있습니다.

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