@ -1,5 +1,6 @@
|
||||
import {isPresent} from 'angular2/src/core/facade/lang';
|
||||
import * as viewModule from './view';
|
||||
import {ChangeDetectorRef} from '../change_detection/change_detector_ref';
|
||||
import {RenderViewRef, RenderFragmentRef} from 'angular2/src/core/render/api';
|
||||
|
||||
// This is a workaround for privacy in Dart as we don't have library parts
|
||||
@ -12,7 +13,7 @@ export function internalProtoView(protoViewRef: ProtoViewRef): viewModule.AppPro
|
||||
return isPresent(protoViewRef) ? protoViewRef._protoView : null;
|
||||
}
|
||||
|
||||
export interface HostViewRef {}
|
||||
export interface HostViewRef { changeDetectorRef: ChangeDetectorRef; }
|
||||
|
||||
/**
|
||||
* A reference to an Angular View.
|
||||
@ -66,6 +67,8 @@ export interface HostViewRef {}
|
||||
* ```
|
||||
*/
|
||||
export class ViewRef implements HostViewRef {
|
||||
private _changeDetectorRef: ChangeDetectorRef = null;
|
||||
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
@ -81,6 +84,19 @@ export class ViewRef implements HostViewRef {
|
||||
*/
|
||||
get renderFragment(): RenderFragmentRef { return this._view.renderFragment; }
|
||||
|
||||
/**
|
||||
* Return `ChangeDetectorRef`
|
||||
*/
|
||||
get changeDetectorRef(): ChangeDetectorRef {
|
||||
if (this._changeDetectorRef === null) {
|
||||
this._changeDetectorRef = this._view.changeDetector.ref;
|
||||
}
|
||||
return this._changeDetectorRef;
|
||||
}
|
||||
set changeDetectorRef(value: ChangeDetectorRef) {
|
||||
throw "readonly"; // TODO: https://github.com/Microsoft/TypeScript/issues/12
|
||||
}
|
||||
|
||||
/**
|
||||
* Set local variable in a view.
|
||||
*
|
||||
|
Reference in New Issue
Block a user