Cách tự động thêm (
inject
) một chỉ thị vào máy chủ?Cách tự động thêm chỉ thị?
Tôi có chỉ thị myTooltip và tôi muốn thêm chỉ thị mdTooltip vào máy chủ lưu trữ của nó. Tôi đã thử setAttribute()
của ElementRef.nativeElement
, nhưng nó không tạo chỉ thị mdTooltip.
mytooltip.directive.ts:
@Directive({
selector: '[my-tooltip]',
host: {
'(mouseenter)': 'show()',
'(mouseleave)': 'hide()',
}
})
export class myTooltip {
@Input('my-tooltip') message;
constructor() { }
show() {
/* TODO: How to add md-tooltip directive to elementref (host)? */
}
hide() {
/* TODO: remove md-tooltip directive from elementref (host) */
}
}
By chủ tôi có nghĩa là các phần tử có chỉ thị myTooltip:
<span my-tooltip="tooltip hint">Click here</span>
Kết quả sẽ không thay đổi trên html nhưng trên mouseenter nó sẽ có chỉ thị md-tooltip trong span.
BTW, lý do tôi đang sử dụng trình bao bọc chứ không phải md-tooltip trực tiếp là sau này tôi muốn sửa đổi độ trễ hiển thị, trì hoãn và tùy chỉnh hành vi của công cụ vật liệu trong các phương tiện khác.
Sửa chỉ thị Rõ ràng thêm động hiện không được hỗ trợ :(Tôi nghĩ câu hỏi này vẫn nên ở đây trong trường hợp nó đội cập nhật tài liệu nào
Các bạn đã thử 'constructor (tt tin: myTooltip) {con duy nhất.log (tt); } '? Không chắc chắn nếu điều này hoạt động. "Host" thực sự là gì? '' không giống như một thành phần. –
Bạn đang nói về "tiêm" khi bạn yêu cầu một nhà cung cấp trong nhà xây dựng, nhưng trong trường hợp này tôi không có ý đó. Những gì tôi có nghĩa là bằng cách tiêm ở đây là có khả năng để chèn một chỉ thị vào một yếu tố dom đã được trả lại, một khoảng, trong trường hợp này. Bạn sẽ làm điều này trong html như thế này ' Bấm vào đây', nhưng bây giờ tôi đang tìm một cách lập trình để làm điều đó. – RichieRock
Đó không phải là tên hoặc liên quan đến tiêm chích. Thêm chỉ thị động hiện không được hỗ trợ, chỉ các thành phần có thể được thêm động. –