将变量传递给限制为属性的指令

时间:2015-07-07 07:57:21

标签: angularjs angularjs-directive

我有这个指令:

.directive('myDate', ['$timeout', '$rootScope', '$locale',
    function ($timeout, $rootScope, $locale) {
        'use strict';
        return {
            restrict: 'A',
            scope: {
                customDate: '='
            },
            // the rest part of directive...
        };
    }
]);

我知道如何将变量传递给仅限于元素的指令。但是当指令以属性

给出时,该方法不起作用
<div class="input-group date" my-date custom-date="testDate">
     <input type="text" class="form-control" ng-model="dateFrom" />
</div>

其中:

scope.testDate= new Date('2015-01-13')

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

在大多数情况下,您的代码应该有效。剩下的就是working plunker。 OP只有一些小问题。在控制器中,绑定到directive属性的属性必须具有相同的名称(scope.date应该是scope.testDate)等。

控制器:

app.controller('Ctrl', function($scope) { 
  $scope.testDate = new Date('2015-01-13')
});

指令:

app.directive('myDate', ['$timeout', '$rootScope', 
    function ($timeout, $rootScope) {
        'use strict';
        return {
            restrict: 'A',
            scope: {
                customDate: '='
            },
            link(scope) {
              console.log(scope.customDate);
            }
        };
    }
]);

HTML:

  <body ng-app="myApp">
    <div ng-controller="Ctrl">
      <div class="input-group date" my-date custom-date="testDate">
        <input type="text" class="form-control" ng-model="dateFrom" />
      </div>
    </div>
  </body>