リストビューのデータを表示するためにjQuery dataTableを使用しました。そして私はdataTableに以下の方法でデータをバインドしようとしました。機能上users.component.ts角度:.tsファイルからHTMLをレンダリングする方法は?
getUsers() {
this.UserService.getUsersList()
.subscribe(
success => {
this.userList = success;
$("#userTable").find('tbody').empty();
var dataClaims = this.userList;
for (let i = 0; i < dataClaims.length; i++) {
$('#userTable').dataTable().fnAddData([
(i + 1),
dataClaims[i].name,
dataClaims[i].email,
dataClaims[i].contact_number,
dataClaims[i].address,
'<a [routerLink]="[' +"'"+"../../user/update" +"'" +']"' + ' class="fa fa-1x fa-pencil-square-o"></a>',
]);
}
}
);
}
で
が正常に動作しているとのdataTableは問題なく働いています。
ただし、[routerLink]
は、に変換されません。出力上では、
<a [routerlink]="['../../user/update']" class="fa fa-1x fa-pencil-square-o"></a>
を次のように表示されている。しかし、
<a _ngcontent-c0="" ng-reflect-router-link="user/update" href="/user/update" class="fa fa-1x fa-pencil-square-o"></a>
は、誰かがからHTMLデータをレンダリングする際に、通常のリンクに[routerlink]
を変換する方法を説明してもらえ、次のように変換する必要があります。 TSファイル。ありがとうございました。あなたが本当にのdataTableを使用したい場合は、多分これはあなたのために役立つことができ
最初、私はこれがための最良の方法だとは思いませんDOMでHTMLインジェクションを使用するそれでも使用したい場合は、それを消毒しようとすると、 –
の代わりにJQueryのdataTableを使用します。 PrimeNGをチェックしたいかもしれません。 https://www.primefaces.org/primeng/#/datatable。それははるかにクリーンであり、DOM注入はありません。 – Dino
@Ashitoshbirajdarあなたがそれを浄化しようとしても、コードはAngularのコンパイラで実行されません。 – Edric