我使用angularJS 1.4.9和ui bootstrap 1.0.3。 我想装饰uibDatepicker指令,但装饰器函数永远不会执行,并且控制台中没有错误或警告消息。 See this plunker
var uib = angular.module('ui.bootstrap');
uib.config(function($provide) {
$provide.decorator('uibDatepickerDirective', function($delegate) {
alert('never logs this');
return $delegate;
});
var app = angular.module('plunker', ['ui.bootstrap']);
app.controller('MainCtrl', function() {
var main = this;
main.welcome = 'hello you';
});
感谢您的帮助
答案 0 :(得分:0)
永远不会执行装饰器函数,因为您实际上从未使用过试图装饰的指令。
只有当模板中的real元素请求指令时才会调用Decorator。这是因为服务和指令是懒惰配置的(提供者),因此除非请求服务或指令,否则提供者不会处于活动状态。
以下是将指令标记放入模板时调用的示例。尝试在代码中添加以下行:
<uib-datepicker ng-model="dt" class="well well-sm"></uib-datepicker>