typescript 角度 - 自定义指令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 角度 - 自定义指令相关的知识,希望对你有一定的参考价值。
@Component({
selector: 'app-paywall-directive-widget',
templateUrl: './paywall-directive-widget.component.html',
styleUrls: ['./paywall-directive-widget.component.css']
})
export class PaywallDirectiveWidgetComponent implements IWidget, AfterViewInit {
widgetTitle = 'Paywall Directive';
// declared Typescript interface inline
linkList: {title: string, licenseLevel: number}[] = [];
ngAfterViewInit(): void {
for (let i = 0; i < 10; i++) {
this.linkList.push({
title: `Link # ${i + 1}`,
licenseLevel: Math.floor((Math.random() * 3) + 1)
});
}
}
}
// the component template
// <ul>
// <li class="link" *ngFor="let item of linkList">
// <a href="#" hsPaywall [requiredLicense]="item.licenseLevel" >{{item.title}}</a>
// </li>
// </ul>
// The actual directive
@Directive({
selector: '[appPaywall]'
})
export class PaywallDirective implements OnInit {
@Input() requiredLicense: number;
elm: HTMLElement;
constructor(element: ElementRef, private ren: Renderer2, private cfg: LicenseConfigService) {
if (element && element.nativeElement) {
this.elm = element.nativeElement;
}
}
// Programatically add HTML using Renderer2
private checkLink(element: HTMLAnchorElement) {
// check required license
if (this.requiredLicense > this.cfg.currentLicense) {
const span = this.ren.createElement('span');
this.ren.addClass(span, 'paywall');
span.title = 'Requires additional license purchase';
const txt = this.ren.createText('
以上是关于typescript 角度 - 自定义指令的主要内容,如果未能解决你的问题,请参考以下文章
typescript 自定义结构型指令
typescript 自定义指令
typescript 属性指令 - 自定义
Vue.js 自定义指令使用 TypeScript 检测点击外部元素
正则表达式测试作为属性的指令实现错误 - 验证(打字稿+角度)
编写自定义指令以在 AngularJS (TypeScript) 中向 ng-options 添加工具提示