什么是正确的方式访问本地元素在角度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