如何将此控制器逻辑包装在角度函数中并在select html元素中使用它

时间:2017-03-13 16:11:06

标签: angularjs

如何将此控制器逻辑包装在角度函数中,并在select html元素中使用它。这里内部控制器代码用作没有功能的内联逻辑。

控制器:

var year = new Date().getFullYear();
var range = [];
range.push(year);
for(var i=1;i<20;i++) {
  range.push(year + i);
}
$scope.years = range;

查看:

<select ng-options="year for year in years">
</select>

2 个答案:

答案 0 :(得分:1)

您可以声明一个类似的函数:

$scope.myfunction = function(){
    var year = new Date().getFullYear();
    var range = [];
    range.push(year);
    for(var i=1;i<20;i++) {
      range.push(year + i);
    }
    return range;
}

并在您的HTML中:

 <select ng-model="selectedYear" ng-options="year for year in myfunction()"></select>

答案 1 :(得分:1)

我认为你所缺少的是select语句中的ng-model。这是一个有效的例子:

getAll
(function() {

  angular
    .module("app", []);

  angular
    .module("app")
    .controller("AppController", AppController);

  AppController.$inject = ["$scope"];

  function AppController($scope) {
    var vm = this;
    vm.selectedYear = "";
    vm.years = [];
    loadData();


    function loadData() {
      var year = new Date().getFullYear();
      var range = [];
      range.push(year);
      for (var i = 1; i < 20; i++) {
        range.push(year + i);
      }
      vm.years = range;
    }





  }


})();