ng-repeat没有在md-option中填充值

时间:2016-09-08 14:53:01

标签: javascript angularjs angular-material

我使用角度材料,我希望在<md-option>组件处放置几年作为值,但是当我在<md-option>放置ng-repeat指令时没有任何反应。在这里我的代码:

<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>放置一年的范围,但它没有填充,我尝试了地点&#34;跟踪$ index&#34;我的ng-repeat也是如此:ng-repeat="year in history.historyYears track by $index",但那不起作用。

1 个答案:

答案 0 :(得分: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;
  }
});