角度デコレーターガイド(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;
})