feat(upgrade): Allow including ng2/1 components in ng1/2

Closes #3539
This commit is contained in:
Misko Hevery
2015-08-06 13:19:29 -07:00
parent db6d289d82
commit 8427863bab
8 changed files with 331 additions and 3 deletions

View File

@ -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.
*