2016-09-08 5 views
0

私は角度材料を使用していますが、<md-option>コンポーネントに値として何年も置いておきたいのですが、ng-repeat指令を<md-option>に置くと何も起こりません。ここに私のコード:ng-repeatはmd-optionで値を入力しません

<div> 
    <md-card> 

     <md-card-content> 
      <div layout="row" layout-align="space-between start"> 
       <md-select ng-model="history.userYear" placeholder="Selecione o ano" class=""> 
        <md-option ng-value="year" ng-repeat="year in history.historyYears"> 
        {{year}} 
        </md-option> 
       </md-select> 
      </div> 
     </md-card-content> 

    </md-card> 
</div> 

controller.js:

(function() { 
    'use strict'; 

    angular 
     .module('myapp') 
     .controller('BulletinController', BulletinController); 

    function BulletinController() { 

     var vm = this; 

     vm.historyYears = historyYears; 

     function historyYears() { 
      var startYear = 2013, 
       currentYear = new Date().getFullYear(), 
       years = []; 

      while (startYear <= currentYear) { 
       years.push(startYear++); 
      } 

      return years; 
     } 
    } 

}()); 

私は私の<md-select>で年間の範囲を置く必要があるが、それが移植されていない、私はあまりにも私に「$インデックスによってトラック」場所を試してみましたng-repeatのように:ng-repeat="year in history.historyYears track by $index"、しかしそれは動作しません。

答えて

1

ここに行く - CodePen

マークアップ

<div ng-controller="AppCtrl as vm" ng-cloak="" ng-app="MyApp"> 
    <div> 
     <md-card> 
      <md-card-content> 
       <div layout="row" layout-align="space-between start"> 
        <md-select ng-model="history.userYear" placeholder="Selecione o ano" class=""> 
        <md-option ng-value="year" ng-repeat="year in vm.history.historyYears"> 
         {{year}} 
        </md-option> 
        </md-select> 
       </div> 
      </md-card-content> 

     </md-card> 
    </div> 
</div> 

はJS

angular.module('MyApp',['ngMaterial', 'ngMessages']) 

.controller('AppCtrl', function() { 
    var vm = this; 
    vm.history = { 
    historyYears: historyYears() 
    } 

    function historyYears() { 
    var startYear = 2013, 
     currentYear = new Date().getFullYear(), 
     years = []; 

    while (startYear <= currentYear) { 
     years.push(startYear++); 
    } 

    return years; 
    } 
}); 
+0

歴史は私が表示するようにしようとしているものを推測する私のルータ –

+0

@Leandroで定義されて、私のコントローラですhistory.historyYearsの 'ng-repeat ="年は、 'vm.historyYears = historyYears; 'という文では動作しません。あなたは私の答えのように変更するか、' ng-repeat = "year i n vm.historyYears " –

+0

うん、それは仕事! –

関連する問題