Я пытаюсь преобразовать AngularJS директивы в Angular. Запуск AngularJS и Angular вместе, используя ngUpgrade
.
У меня есть директива AngularJS, как показано ниже:
angular.directive('countClicks', function($timeout) {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
scope.clickCount = 0;
elem.on('click', function() {
// Code
});
}
};
});
в пересчете на угловой:
@Directive({
selector: '[count-click]'
})
export class CountClickDirective implements AfterViewInit {
constructor(public elem: ElementRef) { }
clickCount = 0;
ngAfterViewInit() {
this.elem.nativeElement.querySelector('count-click', addEventListener('click', function() {
console.log('test directive');
}));
}
}
ngAfterViewInit
не вызывается при нажатии на
Понизьте указанную выше перенесенную директиву до AngularJS, чтобы ее можно было использовать в шаблоне AngularJS
.directive('countClick', <any>downgradeComponent({
component: CountClickDirective,
}))
Шаблон AngularJS:
<span countClick ng-click="test()"></span>
component.ts:
test() {
return 'something';
}