試圖遵循Angular Decorator指南(https://docs.angularjs.org/guide/decorators)中的模板,我嘗試創建一個指令並對其進行裝飾。爲什麼我裝飾的指令不會覆蓋AngularJS中的原始方法?
該指令應顯示當前日期/時間。我添加了一個(無用的)裝飾器來修改link
函數,以便指令顯示字符串「today」而不是日期/時間。
出於某種原因,似乎我被覆蓋的link
函數沒有被調用。原來被調用。爲什麼是這樣?
代碼爲http://plnkr.co/edit/uvtBiN5vNSjk5I89t99C?p=preview(及以下):
angular.module('app', []);
angular.module('app').directive('myElement', function(){
return {
template: 'Today is {{ date }}',
link: function(scope, element, attrs){
console.log('original link called')
scope.date = new Date();
}
}
})
angular.module('app').decorator('myElementDirective', function($delegate){
$delegate[0].link = function(scope){
console.log('calling delegate link')
scope.date = "today"
}
return $delegate;
})