|
1 | | -import {DOM} from 'angular2/src/dom/dom_adapter'; |
2 | | -import {normalizeBlank, BaseException} from 'angular2/src/facade/lang'; |
| 1 | +import {BaseException} from 'angular2/src/facade/lang'; |
3 | 2 | import {ViewRef} from './view_ref'; |
4 | | -import {resolveInternalDomView} from 'angular2/src/render/dom/view/view'; |
5 | | -import {RenderViewRef, RenderElementRef} from 'angular2/src/render/api'; |
| 3 | +import {RenderViewRef, RenderElementRef, Renderer} from 'angular2/src/render/api'; |
6 | 4 |
|
7 | 5 | /** |
8 | 6 | * @exportedAs angular2/view |
9 | 7 | */ |
10 | 8 | export class ElementRef implements RenderElementRef { |
11 | | - constructor(public parentView: ViewRef, public boundElementIndex: number) {} |
| 9 | + constructor(public parentView: ViewRef, public boundElementIndex: number, |
| 10 | + private _renderer: Renderer) {} |
12 | 11 |
|
13 | | - get renderView() { return this.parentView.render; } |
| 12 | + get renderView(): RenderViewRef { return this.parentView.render; } |
14 | 13 | // TODO(tbosch): remove this once Typescript supports declaring interfaces |
15 | 14 | // that contain getters |
16 | | - set renderView(value: any) { throw new BaseException('Abstract setter'); } |
| 15 | + set renderView(viewRef: RenderViewRef) { throw new BaseException('Abstract setter'); } |
17 | 16 |
|
18 | 17 | /** |
19 | | - * Exposes the underlying DOM element. |
20 | | - * (DEPRECATED way of accessing the DOM, replacement coming) |
| 18 | + * Exposes the underlying native element. |
| 19 | + * Attention: This won't work in a webworker scenario! |
21 | 20 | */ |
22 | | - // TODO(tbosch): Here we expose the real DOM element. |
23 | | - // We need a more general way to read/write to the DOM element |
24 | | - // via a proper abstraction in the render layer |
25 | | - get domElement() { |
26 | | - return resolveInternalDomView(this.parentView.render) |
27 | | - .boundElements[this.boundElementIndex] |
28 | | - .element; |
29 | | - } |
30 | | - |
31 | | - /** |
32 | | - * Gets an attribute from the underlying DOM element. |
33 | | - * (DEPRECATED way of accessing the DOM, replacement coming) |
34 | | - */ |
35 | | - // TODO(tbosch): Here we expose the real DOM element. |
36 | | - // We need a more general way to read/write to the DOM element |
37 | | - // via a proper abstraction in the render layer |
38 | | - getAttribute(name: string): string { |
39 | | - return normalizeBlank(DOM.getAttribute(this.domElement, name)); |
40 | | - } |
| 21 | + get nativeElement(): any { return this._renderer.getNativeElementSync(this); } |
41 | 22 | } |
0 commit comments