Я хочу использовать Material Design Lite snackbar в Угловом 2.угловой 2 добыть элемент в угловых 2 для использования в конструкции материалов облегченного
Я пытался достать элемент в шаблоне, как следующее:
Мой шаблон
<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>
В моем компоненте файл
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);
}
Получаю следующее сообщение об ошибке. Как я разжиться элемента с идентификатором toast_error
EXCEPTION: TypeError: Cannot read property 'MaterialSnackbar' of null in [null]
PS: Я проверил, что this.el.nativeElement
дает мне правильную ссылку
Редактировать
следующие ответы и комментарии, теперь я могу получить удерживайте элемент, используя тот же код внутри ngAfterViewInit
. Однако я не могу заставить закусочную работать. Ниже приведен обновленный код.
В моем компоненте файл
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);
}
В console.log()
команда печатает неопределенными. Я убедился, что material.min.js загружен и проверен файл, он включает MaterialSnackbar
. Как мне отладить это?
Итак, я правильно понял корневой элемент? Что мне нужно сделать, чтобы получить дочерний элемент (желательно по id) – user3288346
, если вы затем используете его для запроса, работает ли он? проблема заключается в том, что запрос выполняется до того, как DOM готов. Попробуйте с AfterViewInit, проверьте обновленный ответ –
Я обновил свой вопрос. Он работает, но я не могу заставить закусочную работать. – user3288346