0

angularJSの同じ データ セットに基づいて、複数のドロップダウン リストを動的に作成することができました。ただし、各ドロップダウン リストのデフォルト値を動的に設定しようとすると問題が発生します。たとえば、最初のドロップダウン リストでは、最初の件名 (「ライティング」) をデフォルトで選択したいと考えています。次に、2 番目のドロップダウン リストで 2 番目の科目 (「読書」) を選択し、3 番目のドロップダウン リストで 3 番目の科目 (「数学」) を選択するなどを行います。要約すると、各ドロップダウン リストには同じオプションがありますが、異なるモデルに動的に割り当てる必要があります。

http://plnkr.co/edit/dmQFLP?p=previewのコードを参照してください。

よろしくお願いします。

これが私のコントローラーコードです: var module = angular.module("myapp",[]);

module.controller('myCtrl',['$scope','myService', function ($scope,myService) {

$scope.subjects = myService.getSubjects();    
$scope.subjectSelected=[]
}])

module.factory('myService', [function () {
  return {
    getSubjects: function() {      
          return [ 
              { name: 'Writing', value: 'Writing'}, 
              { name: 'Reading', value: 'Reading'}, 
              { name: 'Math', value: 'Math'},
              { name: 'Art', value: 'Art'},
              { name: 'Social Studies', value: 'SocialStudies'},];
    }
  }
}]);
4

1 に答える 1

2

タグを追加ng-init="subjectSelected[$index] = subjects[$index].value"して、値を初期化してみてください。select

例えば

<div ng-repeat ="subject in subjects">
    <select class="form-control input-lg" 
            ng-init="subjectSelected[$index] = subjects[$index].value" 
            ng-model="subjectSelected[$index]"
            required="required" 
            ng-options="subject.value as subject.name for subject in subjects">
    </select> 
</div>

それが役に立てば幸い。

于 2015-07-01T01:04:03.073 に答える