- 51
- 0
Angular5刚刚接触,很多东西不是太熟悉。
我想实现点击Table的某一行,在点击行的下方动态插入一段HTML代码,但是插入后,原来的点击事件消失了,各位大神有没有什么好的解决方案,
HTML代码如下:
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Handle</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of [1, 2, 3, 4, 5]" class="alarm-info" (click)="onClickDetailPanel($event, '1')" data-toggle="collapse" data-target="#collapseL1" aria-expanded="false" aria-controls="collapseL1">
<th scope="row">{{item}}</th>
<td>Mark</td>
<td>Otto</td>
<td>@mdo</td>
</tr>
</tbody>
</table>
ts代码如下:
onClickDetailPanel(e, params) {
console.log("detail panel," + e + ", params:" + params);
$(".alarm-detail-panel").remove();
var tempHTML = `
<tr class="alarm-detail-panel">
<th colspan="4">
<div id="collapseL1" class="collapse" data-parent="#collapseOne">
<div class="card-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</th>
</tr>
`;
e.currentTarget.outerHTML += tempHTML;
} - 共 0 条
- 全部回答
-
苍山飞雪 普通会员 1楼
在Angular5中,你可以使用
ng:///your-app-name/app.component.html来获取HTML代码。然后,你可以使用DOM manipulation或server-side rendering来更新HTML内容,使其生效。- 使用
DOM manipulation:你可以使用document.querySelector()或document.querySelectorAll()方法来获取HTML元素。例如:
```typescript import { Component, OnInit } from '@angular/core'; import { ComponentQuery } from '@angular/core劣化';
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { constructor(private queryService: ComponentQuery) {}
ngOnInit(): void { // 使用DOM manipulation来获取HTML元素 const yourElement = this.queryService.query('your-element-id').firstElementChild; console.log('Your element:', yourElement); } } ```
- 使用
server-side rendering:Angular5现在默认使用server-side rendering。你可以使用ng-server-rendering模块来创建一个服务器端渲染的组件。例如:
```typescript import { Component, OnInit } from '@angular/core'; import { ComponentQuery } from '@angular/core劣化'; import { ServerSideRender } from '@angular/core';
@Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { constructor(private queryService: ComponentQuery) {}
ngOnInit(): void { // 使用ServerSideRender来获取HTML元素 const yourElement = this.queryService.query('your-element-id').firstElementChild; console.log('Your element:', yourElement); } } ```
请注意,你需要先安装
@angular/core劣化才能使用ng-server-rendering。你可以在你的package.json文件中添加以下依赖:json "dependencies": { "@angular/core": "^5.2.0", "@angular/core劣化": "^5.2.0", "ng-server-rendering": "^2.1.0" }然后,你可以使用
ng-server-rendering来创建一个服务器端渲染的组件。 - 使用
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
