2016-04-26 21 views
0

は、私は、2 ngのリピートループ、のいずれかを設定するには、ネストされたものをしようとしています設定/取得するには、選択/オプションのドロップダウンです。私は他の同様の投稿をチェックしましたが、選択ボックスでデフォルト値/オプションを取得/設定するためにHTMLでngモデルを定義する方法はまだ分かりません。AngularJS - 選択/オプション付きのNGリピートネストされた、選択した値

<table> 
     <tr ng-repeat="student in studentList"> 
     <td>{{student.name}}</td> 
     <td> 
      <select ng-model="courseSelected"> 
      <option ng-repeat="course in courseList" value="{{course.id}}">{{course.name}}</option> 
      </select> 
     </td> 
     </tr> 
    </table> 

studentListとcourseListの両方がデータベーステーブルから来ており、studentテーブル/オブジェクトにはcourseId列/参照があります。言い換えれば、(この問題が発生した場合)コースと変更されたコースのオプションを選択し、デフォルトでは、それらの背後にあるロジックを持っているでしょう:student.courseId = course.id

すべてのヘルプは高く評価されます。

答えて

1
<select ng-model="student.courseId" ng-options="course.name as course.id for course in courseList"> 

これはあなたが探しているものを得るでしょう。私はコースにnameのプロパティがあると仮定しました。しかし、あなたはng-options指令であなたが好きな物件でエイリアスすることができます。詳細なドキュメントはhereです。

https://docs.angularjs.org/api/ng/directive/ngOptions

https://docs.angularjs.org/api/ng/directive/select

+0

うーん...私は何かが欠けているかもしれないが、これは、ページの読み込みにデフォルト値/名前をピックアップしていないようです。選択ボックスは空白のままですが、クリックしてコースリストをドロップするとコースが表示されます。 – user2217057

+0

角度コードでもデフォルト値を明示的に設定する必要があります。 dbモデルのデフォルト値を読み取ることはできません。 dbのデフォルトを意味しますか?それが読み込まれたときのstudent.courseIdの初期値は? – chukkwagon

+0

student.courseIdは 'null'なので、' undefined'、または空白の文字列である場合、角度は 'NG-model'を初期化する方法を知らないので、それは選択の最上部に空白のオプションを生成します。それはangularjsの既知のバグです – chukkwagon

0

は、私はあなたのようなタグにNG-オプションを使用すべきだと思います

0

var editer = angular.module('app', []); 
 

 
function myCtrl($scope) { 
 

 
    $scope.studentList = [{ 
 
    id: 1, 
 
    name: 'Jack' 
 
    }, { 
 
    id: 2, 
 
    name: 'Terry' 
 
    }, { 
 
    id: 3, 
 
    name: 'Rosa' 
 
    }, { 
 
    id: 4, 
 
    name: 'Holt' 
 
    }]; 
 
    $scope.courseList = [{ 
 
    id: 1, 
 
    name: 'Course1' 
 
    }, { 
 
    id: 2, 
 
    name: 'Course2' 
 
    }]; 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
    
 
<div ng-app="app" ng-controller="myCtrl" class="container"> 
 
<table> 
 
     <tr ng-repeat="student in studentList"> 
 
     <td>{{student.name}}</td> 
 
     <td> 
 
      <select ng-model="student.courseSelected" ng-options="course as course.name for course in courseList"> 
 
    </select> 
 
      
 
     </td> 
 
     <td> 
 
      {{student.courseSelected.name}} 
 
      </td> 
 
     </tr> 
 
    </table> 
 
    <label class="item item-input"> 
 
    <span class="input-label">Select date</span> 
 
    
 
    </label> 
 

 
    <pre>{{dateOption}}</pre> 
 
</div>
:多分あなたはより多くの説明のためにこれらのドキュメントをお読みください

<select ng-model="courseSelected" ng-options= "course.id for course in courseList"> 

関連する問題