Tôi muốn sử dụng Material Design Lite snackbar trong góc 2.góc 2 việc tổ chức của một phần tử trong góc 2 để sử dụng trong thiết kế Vật liệu Lite
Tôi cố gắng để có được giữ của Element trong mẫu của tôi như sau:
mẫu của tôi
<test>
<div id="child1"> child1 <div id="child2">
<div id="child2"> child2 <div id="child2">
<div id="toast_error"> Error message </div>
</div>
</div>
</div>
</test>
Trong tập tin thành phần của tôi
constructor(private el:ElementRef){}
ngOnInit(){
this.show_error("something");
}
show_error(err){
var snackbarContainer = this.el.nativeElement.querySelector("#toast_error")
var data = {
message: 'Button color changed.',
timeout: 2000,
actionText: 'Undo'
};
snackbarContainer.MaterialSnackbar.showSnackbar(data);
}
Tôi nhận được thông báo lỗi folowing. Làm thế nào để có được giữ của các phần tử với id toast_error
EXCEPTION: TypeError: Cannot read property 'MaterialSnackbar' of null in [null]
PS: Tôi đã kiểm tra rằng this.el.nativeElement
không cho tôi tham khảo đúng
Sửa
Tiếp theo câu trả lời và ý kiến, bây giờ tôi có thể nhận được giữ nguyên tố bằng cách sử dụng cùng một mã bên trong ngAfterViewInit
. Tuy nhiên, tôi không thể lấy snackbar để làm việc. Sau đây là mã được cập nhật.
Trong tập tin thành phần của tôi
constructor(private el:ElementRef){}
ngAfterViewInit(){
var snackbarContainer = this.el.nativeElement.querySelector("#toast_error")
var data = {
message: 'Button color changed.',
timeout: 2000,
actionText: 'Undo'
};
console.log(snackbarContainer.MaterialSnackbar); //prints undefined
//snackbarContainer.MaterialSnackbar.showSnackbar(data);
}
Lệnh console.log()
in không xác định. Tôi đã đảm bảo rằng tệp material.min.js được tải và kiểm tra tệp, nó bao gồm MaterialSnackbar
. Làm thế nào tôi nên gỡ lỗi này?
Vì vậy, tôi nhận được các yếu tố gốc phải không? Tôi phải làm gì để có được một phần tử con (tốt nhất là bằng id) – user3288346
nếu sau đó bạn sử dụng nó để truy vấn, nó có hoạt động không? vấn đề là truy vấn được thực hiện trước khi DOM sẵn sàng. Hãy thử với AfterViewInit, kiểm tra câu trả lời cập nhật –
Tôi đã cập nhật câu hỏi của mình. Nó hoạt động, nhưng tôi không thể lấy snackbar để làm việc. – user3288346