什么是正确的方式访问本地元素在角度2(2差异)
所以我看到代码使用:
所以我看到代码使用:
- constructor(ele: ElementRef) {
- let myEl = ele.nativeElement;
- // do some work on myEl such as jQuery(myEl).hide()
- ...
以及通过BrowserDomAdapter使用本机dom的代码:
- constructor(viewContainer:ViewContainerRef) {
- let dom = new BrowserDomAdapter();
- let el = viewContainer.element.nativeElement;
- let myEle = dom.getElementsByClassName(el,element)[0];
- // or jQuery(myEle).hide()
- ...
我想知道什么是Pro / Cons和“正当”的做事方式.
不幸的是,文档似乎很少.
我假设后者会通过界面给你WebWorkers支持,但这只是我的假设.
- <div #foo>
- @ViewChild() foo;
- ngAfterViewInit(){
- foo.nativeElement...
- }
或如果被转载
- @ContentChild() foo;
- ngAfterContentInit(){
- foo.nativeElement...
- }
允许通过模板变量或组件或指令类型来选择元素. (有一个类型,你会得到组件实例,而不是元素.
要么
- constructor(@ViewChildren('foo') elements) {...
- constructor(@ContentChildren('foo') elements) {...
@ViewChild提供了一个实时视图来匹配具有更改订阅的元素.
也可以看看
> What’s the difference between @ViewChild and @ContentChild?
> angular 2 / typescript : get hold of an element in the template