![](/img/trans.png)
[英]Cannot use Renderer2 to change attribute of button referenced using ViewChild
[英]Set (click) attribute in button using renderer2 in Angular
我正在嘗試創建一個基於聊天的應用程序,在其中我根據要求創建每種類型的聊天彈出窗口並使用Angular Renderer2
。 我嘗試在 UI 中呈現聊天消息元素時向聊天消息元素添加(click)
屬性。
我收到了這個錯誤:
DOMException:無法在“元素”上執行“setAttribute”:“((單擊))”不是有效的屬性名稱。
聊天組件.ts
const btn3: HTMLDivElement = this.renderer.createElement('button');
this.renderer.addClass(btn3, 'btn');
this.renderer.addClass(btn3, 'btn-light');
this.renderer.setAttribute(btn3, '(click)', 'sendMessage()');
btn3.innerHTML = 'Maybe later!';
this.renderer.appendChild(buttons, btn3);
setAttribute
function 是設置元素的屬性,如disabled
。 相反,您可以使用listen()
function 添加事件偵聽器。
this.renderer.listen(
btn3,
'click',
this.sendMessage.bind(this)
);
或者
this.renderer.listen(
btn3,
'click',
() => this.sendMessage()
);
您需要bind
或使用箭頭函數在回調 function 中保留this
關鍵字的含義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.