2016-04-30 23 views
1

ここでは少し迷っています。私にはチームメンバーがいます。各チームメンバーにはロールIDがあります。私も役割の配列を持っています。各役割にはIDがあります。私はチームメンバーをループし、チームメンバーごとに名前と選択をすべてのロールで表示します。それはうまく動作します。私は現在のチームメンバーの役割を選択肢にあらかじめ選択させることができません。選択入力の角度選択前のオプション

これは私のデータ構造体である:

teamMembers = [ 
       {id,100,name:John,roleId,19}, 
       {id,101,name:Sue,roleId,20}, 
       ... 
       ] 
roles = [ 
      {id:19,name:'Administrator'}, 
      {id:20,name:'Superuser'}, 
      ... 
     ] 

HTML:

<tr ng-repeat="teamMember in data.team.MEMBERS"> 
    <td> 
     {{teamMember.firstName}} {{teamMember.infix}} {{teamMember.lastName}}</td> 
<td> 
    <select 
     ng-model="teamMember.roleId" 
     ng-options="role.systemName for role in data.roles track by role.id"> 
    </select> 
</td> 

私が欲しいの役割teamMember.roleId == role.id.最初に選択表示されますということですまた、2ウェイデータバインディングは、teamMembr.roleIdを常に現在選択されているrole.idと等しくなるように更新する必要があります。

角度1.5.0で可能ですか?もしそうなら、どうですか?

ありがとうございました!

答えて

1

この

var app = angular.module("testApp", []); 
 
app.controller('testCtrl', function($scope){ 
 
    $scope.open = false; 
 
$scope.teamMembers = [{id:100,name:'John',roleId:19},{id:101,name:'Sue',roleId:20}]; 
 
$scope.roles = [{id:19,name:'Administrator'},{id:20,name:'Superuser'}]; 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="testApp" ng-controller="testCtrl"> 
 
    <table> 
 
    <tr ng-repeat="teamMember in teamMembers"> 
 
    <td> 
 
     {{teamMember.name}} </td> 
 
<td> 
 
    <select 
 
     ng-model="teamMember.roleId" 
 
     ng-options="role.id as role.name for role in roles"> 
 
    </select> 
 
</td> 
 
    </table> 
 
    
 
</div>

0
  1. ようにしようとはrole.systemNameng-optionsrole.nameではないでしょうか?

    <select 
        ng-model="teamMember.roleId" 
        ng-options="role.id as role.name for role in data.roles track by role.id"> 
    </select> 
    
:役割の idプロパティにバインドする

  • 使用as

  • 関連する問題