javascript - 在 Angular 中动态生成视图中的链接
问题描述
我有一个字符串
我美丽的超级 %url%URLLINK%url% 没有门口!
我想得到这样的东西:
my beutifull super <a (click)="urlHandler(URLLINK)">URLLINK</a> with no doorway!
如何在代码中动态生成模板元素?
解决方案
欢迎鲍勃·巴尔康斯基!
我们可以把这个功能放到一个单独的组件中,
@Component({
selector: 'app-custom-string-transformer',
template: `{{parsed.before || ''}}<a *ngIf="parsed.url" (click)="handleUrlClick(parsed.url)">{{parsed.url}}</a>{{parsed.after || ''}}`,
styles: [`a { color: blue; text-decoration: underline; cursor: pointer;}`]
})
export class StringTransformerComponent implements OnInit {
@Input() str: string
@Output() onUrlClicked: EventEmitter<string> = new EventEmitter<string>();
parsed: ParsedString = {} as ParsedString
ngOnInit(): void {
this.parsed = this._parseStr(this.str)
}
_parseStr(str: string): ParsedString {
const [full, before, url, after] = str.match(/(.*)%url%(.+)%url%(.*)/)
return {before, url, after}
}
handleUrlClick(url: string): void {
this.onUrlClicked.emit(url);
}
}
演示:https ://stackblitz.com/edit/angular-nakjdb?file=src%2Fapp%2Fstring-transformer.component.ts
推荐阅读
- javascript - 如何在两个年龄之间的表格中搜索
- jquery - 如何更新某些特定列的数据数据表
- reactjs - 如何自定义material-ui TextField Input underline:after?
- cypress - 获取 Cypress 中的 Children 元素之一
- python - 如何修复“'查询'对象没有属性'contains_column_references'”
- php - 如何在PHP中不使用字符串函数和数组函数的情况下查找字符串的前两个和最后两个字符
- node.js - Nodejs中的Keycloak总是返回403 Access Denied错误
- octave - “暂停”不会暂停 Windows 10 中 Octave 5.1.0 中脚本的执行
- javascript - 每 5 秒将类随机应用于列表项
- javascript - 函数 setInterval() 在第二次调用时无法正常工作