angular指令范围:设置默认值

时间:2014-10-07 19:42:45

标签: angularjs angularjs-directive angularjs-scope

我正在创建一个datepicker指令,其标记的一部分是:

<select class="form-control" ng-model="day" ng-options="day.nr for day in allDays">

我正在尝试在allDays属性中定义scope,如下所示:

ehrApp.directive('datePicker', function() {
  return {
    scope: {
      allDays: [
      {'nr': 1},
      {'nr': 2},
      {'nr': 3},
      (...)
      {'nr': 31}
      ]
    },

但它不起作用,它失败了“TypeError:undefined不是函数”。

任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您正在定义指令配置的scope属性中的值,您可以在该属性中定义指令使用的隔离范围。不是在那里做,而是在link函数或controller函数中执行:

return {
   link : function (scope, element, attrs) {
       scope.allDays = [{nr : 1}];
   }
}

return {
   controller : function ($scope, $element) {
       $scope.allDays = [{nr : 1}];
   }
}