refactor(PropertySetter): use the global reflector
This commit is contained in:
parent
c67194a3ef
commit
951a808e0e
|
@ -57,7 +57,7 @@ function _injectorBindings(appComponentType): List<Binding> {
|
||||||
}, [appComponentAnnotatedTypeToken, appDocumentToken]),
|
}, [appComponentAnnotatedTypeToken, appDocumentToken]),
|
||||||
|
|
||||||
bind(appViewToken).toAsyncFactory((changeDetection, compiler, injector, appElement,
|
bind(appViewToken).toAsyncFactory((changeDetection, compiler, injector, appElement,
|
||||||
appComponentAnnotatedType, strategy, eventManager, reflector) => {
|
appComponentAnnotatedType, strategy, eventManager) => {
|
||||||
return compiler.compile(appComponentAnnotatedType.type).then(
|
return compiler.compile(appComponentAnnotatedType.type).then(
|
||||||
(protoView) => {
|
(protoView) => {
|
||||||
var appProtoView = ProtoView.createRootProtoView(protoView, appElement,
|
var appProtoView = ProtoView.createRootProtoView(protoView, appElement,
|
||||||
|
@ -66,12 +66,12 @@ function _injectorBindings(appComponentType): List<Binding> {
|
||||||
// The light Dom of the app element is not considered part of
|
// The light Dom of the app element is not considered part of
|
||||||
// the angular application. Thus the context and lightDomInjector are
|
// the angular application. Thus the context and lightDomInjector are
|
||||||
// empty.
|
// empty.
|
||||||
var view = appProtoView.instantiate(null, eventManager, reflector);
|
var view = appProtoView.instantiate(null, eventManager);
|
||||||
view.hydrate(injector, null, new Object());
|
view.hydrate(injector, null, new Object());
|
||||||
return view;
|
return view;
|
||||||
});
|
});
|
||||||
}, [ChangeDetection, Compiler, Injector, appElementToken, appComponentAnnotatedTypeToken,
|
}, [ChangeDetection, Compiler, Injector, appElementToken, appComponentAnnotatedTypeToken,
|
||||||
ShadowDomStrategy, EventManager, Reflector]),
|
ShadowDomStrategy, EventManager]),
|
||||||
|
|
||||||
bind(appChangeDetectorToken).toFactory((rootView) => rootView.changeDetector,
|
bind(appChangeDetectorToken).toFactory((rootView) => rootView.changeDetector,
|
||||||
[appViewToken]),
|
[appViewToken]),
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {ViewContainer} from 'angular2/src/core/compiler/view_container';
|
||||||
import {NgElement} from 'angular2/src/core/dom/element';
|
import {NgElement} from 'angular2/src/core/dom/element';
|
||||||
import {Directive, onChange, onDestroy} from 'angular2/src/core/annotations/annotations'
|
import {Directive, onChange, onDestroy} from 'angular2/src/core/annotations/annotations'
|
||||||
import {BindingPropagationConfig} from 'angular2/src/core/compiler/binding_propagation_config'
|
import {BindingPropagationConfig} from 'angular2/src/core/compiler/binding_propagation_config'
|
||||||
import {Reflector} from 'angular2/src/reflection/reflection';
|
import {reflector} from 'angular2/src/reflection/reflection';
|
||||||
|
|
||||||
var _MAX_DIRECTIVE_CONSTRUCTION_COUNTER = 10;
|
var _MAX_DIRECTIVE_CONSTRUCTION_COUNTER = 10;
|
||||||
|
|
||||||
|
@ -270,8 +270,8 @@ export class ProtoElementInjector {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
instantiate(parent:ElementInjector, host:ElementInjector, reflector: Reflector):ElementInjector {
|
instantiate(parent:ElementInjector, host:ElementInjector):ElementInjector {
|
||||||
return new ElementInjector(this, parent, host, reflector);
|
return new ElementInjector(this, parent, host);
|
||||||
}
|
}
|
||||||
|
|
||||||
directParent(): ProtoElementInjector {
|
directParent(): ProtoElementInjector {
|
||||||
|
@ -324,10 +324,8 @@ export class ElementInjector extends TreeNode {
|
||||||
_obj9:any;
|
_obj9:any;
|
||||||
_preBuiltObjects;
|
_preBuiltObjects;
|
||||||
_constructionCounter;
|
_constructionCounter;
|
||||||
_refelector: Reflector;
|
|
||||||
|
|
||||||
constructor(proto:ProtoElementInjector, parent:ElementInjector, host:ElementInjector,
|
constructor(proto:ProtoElementInjector, parent:ElementInjector, host:ElementInjector) {
|
||||||
reflector: Reflector) {
|
|
||||||
super(parent);
|
super(parent);
|
||||||
if (isPresent(parent) && isPresent(host)) {
|
if (isPresent(parent) && isPresent(host)) {
|
||||||
throw new BaseException('Only either parent or host is allowed');
|
throw new BaseException('Only either parent or host is allowed');
|
||||||
|
@ -340,7 +338,6 @@ export class ElementInjector extends TreeNode {
|
||||||
}
|
}
|
||||||
|
|
||||||
this._proto = proto;
|
this._proto = proto;
|
||||||
this._refelector = reflector;
|
|
||||||
|
|
||||||
//we cannot call clearDirectives because fields won't be detected
|
//we cannot call clearDirectives because fields won't be detected
|
||||||
this._preBuiltObjects = null;
|
this._preBuiltObjects = null;
|
||||||
|
@ -518,7 +515,7 @@ export class ElementInjector extends TreeNode {
|
||||||
_buildPropSetter(dep) {
|
_buildPropSetter(dep) {
|
||||||
var ngElement = this._getPreBuiltObjectByKeyId(StaticKeys.instance().ngElementId);
|
var ngElement = this._getPreBuiltObjectByKeyId(StaticKeys.instance().ngElementId);
|
||||||
var domElement = ngElement.domElement;
|
var domElement = ngElement.domElement;
|
||||||
var setter = this._refelector.setter(dep.propSetterName);
|
var setter = reflector.setter(dep.propSetterName);
|
||||||
return function(v) { setter(domElement, v) };
|
return function(v) { setter(domElement, v) };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ import {ShadowDomStrategy} from './shadow_dom_strategy';
|
||||||
import {ViewPool} from './view_pool';
|
import {ViewPool} from './view_pool';
|
||||||
import {EventManager} from 'angular2/src/core/events/event_manager';
|
import {EventManager} from 'angular2/src/core/events/event_manager';
|
||||||
|
|
||||||
import {Reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
|
|
||||||
const NG_BINDING_CLASS = 'ng-binding';
|
const NG_BINDING_CLASS = 'ng-binding';
|
||||||
const NG_BINDING_CLASS_SELECTOR = '.ng-binding';
|
const NG_BINDING_CLASS_SELECTOR = '.ng-binding';
|
||||||
|
|
||||||
|
@ -320,23 +318,19 @@ export class ProtoView {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(rado): hostElementInjector should be moved to hydrate phase.
|
// TODO(rado): hostElementInjector should be moved to hydrate phase.
|
||||||
instantiate(hostElementInjector: ElementInjector, eventManager: EventManager,
|
instantiate(hostElementInjector: ElementInjector, eventManager: EventManager):View {
|
||||||
reflector: Reflector):View {
|
if (this._viewPool.length() == 0) this._preFillPool(hostElementInjector, eventManager);
|
||||||
if (this._viewPool.length() == 0) this._preFillPool(hostElementInjector, eventManager,
|
|
||||||
reflector);
|
|
||||||
var view = this._viewPool.pop();
|
var view = this._viewPool.pop();
|
||||||
return isPresent(view) ? view : this._instantiate(hostElementInjector, eventManager, reflector);
|
return isPresent(view) ? view : this._instantiate(hostElementInjector, eventManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
_preFillPool(hostElementInjector: ElementInjector, eventManager: EventManager,
|
_preFillPool(hostElementInjector: ElementInjector, eventManager: EventManager) {
|
||||||
reflector: Reflector) {
|
|
||||||
for (var i = 0; i < VIEW_POOL_PREFILL; i++) {
|
for (var i = 0; i < VIEW_POOL_PREFILL; i++) {
|
||||||
this._viewPool.push(this._instantiate(hostElementInjector, eventManager, reflector));
|
this._viewPool.push(this._instantiate(hostElementInjector, eventManager));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_instantiate(hostElementInjector: ElementInjector, eventManager: EventManager,
|
_instantiate(hostElementInjector: ElementInjector, eventManager: EventManager): View {
|
||||||
reflector: Reflector): View {
|
|
||||||
var rootElementClone = this.instantiateInPlace ? this.element : DOM.importIntoDoc(this.element);
|
var rootElementClone = this.instantiateInPlace ? this.element : DOM.importIntoDoc(this.element);
|
||||||
var elementsWithBindingsDynamic;
|
var elementsWithBindingsDynamic;
|
||||||
if (this.isTemplateElement) {
|
if (this.isTemplateElement) {
|
||||||
|
@ -389,9 +383,9 @@ export class ProtoView {
|
||||||
if (isPresent(protoElementInjector)) {
|
if (isPresent(protoElementInjector)) {
|
||||||
if (isPresent(protoElementInjector.parent)) {
|
if (isPresent(protoElementInjector.parent)) {
|
||||||
var parentElementInjector = elementInjectors[protoElementInjector.parent.index];
|
var parentElementInjector = elementInjectors[protoElementInjector.parent.index];
|
||||||
elementInjector = protoElementInjector.instantiate(parentElementInjector, null, reflector);
|
elementInjector = protoElementInjector.instantiate(parentElementInjector, null);
|
||||||
} else {
|
} else {
|
||||||
elementInjector = protoElementInjector.instantiate(null, hostElementInjector, reflector);
|
elementInjector = protoElementInjector.instantiate(null, hostElementInjector);
|
||||||
ListWrapper.push(rootElementInjectors, elementInjector);
|
ListWrapper.push(rootElementInjectors, elementInjector);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -418,7 +412,7 @@ export class ProtoView {
|
||||||
var bindingPropagationConfig = null;
|
var bindingPropagationConfig = null;
|
||||||
if (isPresent(binder.componentDirective)) {
|
if (isPresent(binder.componentDirective)) {
|
||||||
var strategy = this.shadowDomStrategy;
|
var strategy = this.shadowDomStrategy;
|
||||||
var childView = binder.nestedProtoView.instantiate(elementInjector, eventManager, reflector);
|
var childView = binder.nestedProtoView.instantiate(elementInjector, eventManager);
|
||||||
view.changeDetector.addChild(childView.changeDetector);
|
view.changeDetector.addChild(childView.changeDetector);
|
||||||
|
|
||||||
lightDom = strategy.constructLightDom(view, childView, element);
|
lightDom = strategy.constructLightDom(view, childView, element);
|
||||||
|
@ -434,7 +428,7 @@ export class ProtoView {
|
||||||
if (isPresent(binder.viewportDirective)) {
|
if (isPresent(binder.viewportDirective)) {
|
||||||
var destLightDom = this._directParentElementLightDom(protoElementInjector, preBuiltObjects);
|
var destLightDom = this._directParentElementLightDom(protoElementInjector, preBuiltObjects);
|
||||||
viewContainer = new ViewContainer(view, element, binder.nestedProtoView, elementInjector,
|
viewContainer = new ViewContainer(view, element, binder.nestedProtoView, elementInjector,
|
||||||
eventManager, reflector, destLightDom);
|
eventManager, destLightDom);
|
||||||
ListWrapper.push(viewContainers, viewContainer);
|
ListWrapper.push(viewContainers, viewContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,6 @@ import {Injector} from 'angular2/di';
|
||||||
import * as eiModule from 'angular2/src/core/compiler/element_injector';
|
import * as eiModule from 'angular2/src/core/compiler/element_injector';
|
||||||
import {isPresent, isBlank} from 'angular2/src/facade/lang';
|
import {isPresent, isBlank} from 'angular2/src/facade/lang';
|
||||||
import {EventManager} from 'angular2/src/core/events/event_manager';
|
import {EventManager} from 'angular2/src/core/events/event_manager';
|
||||||
import {Reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
|
|
||||||
export class ViewContainer {
|
export class ViewContainer {
|
||||||
parentView: viewModule.View;
|
parentView: viewModule.View;
|
||||||
|
@ -15,7 +14,6 @@ export class ViewContainer {
|
||||||
_views: List<viewModule.View>;
|
_views: List<viewModule.View>;
|
||||||
_lightDom: any;
|
_lightDom: any;
|
||||||
_eventManager: EventManager;
|
_eventManager: EventManager;
|
||||||
_reflector: Reflector;
|
|
||||||
elementInjector: eiModule.ElementInjector;
|
elementInjector: eiModule.ElementInjector;
|
||||||
appInjector: Injector;
|
appInjector: Injector;
|
||||||
hostElementInjector: eiModule.ElementInjector;
|
hostElementInjector: eiModule.ElementInjector;
|
||||||
|
@ -25,14 +23,12 @@ export class ViewContainer {
|
||||||
defaultProtoView: viewModule.ProtoView,
|
defaultProtoView: viewModule.ProtoView,
|
||||||
elementInjector: eiModule.ElementInjector,
|
elementInjector: eiModule.ElementInjector,
|
||||||
eventManager: EventManager,
|
eventManager: EventManager,
|
||||||
reflector: Reflector,
|
|
||||||
lightDom = null) {
|
lightDom = null) {
|
||||||
this.parentView = parentView;
|
this.parentView = parentView;
|
||||||
this.templateElement = templateElement;
|
this.templateElement = templateElement;
|
||||||
this.defaultProtoView = defaultProtoView;
|
this.defaultProtoView = defaultProtoView;
|
||||||
this.elementInjector = elementInjector;
|
this.elementInjector = elementInjector;
|
||||||
this._lightDom = lightDom;
|
this._lightDom = lightDom;
|
||||||
this._reflector = reflector;
|
|
||||||
|
|
||||||
// The order in this list matches the DOM order.
|
// The order in this list matches the DOM order.
|
||||||
this._views = [];
|
this._views = [];
|
||||||
|
@ -81,8 +77,7 @@ export class ViewContainer {
|
||||||
if (!this.hydrated()) throw new BaseException(
|
if (!this.hydrated()) throw new BaseException(
|
||||||
'Cannot create views on a dehydrated ViewContainer');
|
'Cannot create views on a dehydrated ViewContainer');
|
||||||
// TODO(rado): replace with viewFactory.
|
// TODO(rado): replace with viewFactory.
|
||||||
var newView = this.defaultProtoView.instantiate(this.hostElementInjector, this._eventManager,
|
var newView = this.defaultProtoView.instantiate(this.hostElementInjector, this._eventManager);
|
||||||
this._reflector);
|
|
||||||
// insertion must come before hydration so that element injector trees are attached.
|
// insertion must come before hydration so that element injector trees are attached.
|
||||||
this.insert(newView, atIndex);
|
this.insert(newView, atIndex);
|
||||||
newView.hydrate(this.appInjector, this.hostElementInjector, this.parentView.context);
|
newView.hydrate(this.appInjector, this.hostElementInjector, this.parentView.context);
|
||||||
|
|
|
@ -12,7 +12,6 @@ import {NgElement} from 'angular2/src/core/dom/element';
|
||||||
import {LightDom, SourceLightDom, DestinationLightDom} from 'angular2/src/core/compiler/shadow_dom_emulation/light_dom';
|
import {LightDom, SourceLightDom, DestinationLightDom} from 'angular2/src/core/compiler/shadow_dom_emulation/light_dom';
|
||||||
import {Directive} from 'angular2/src/core/annotations/annotations';
|
import {Directive} from 'angular2/src/core/annotations/annotations';
|
||||||
import {BindingPropagationConfig} from 'angular2/src/core/compiler/binding_propagation_config';
|
import {BindingPropagationConfig} from 'angular2/src/core/compiler/binding_propagation_config';
|
||||||
import {reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
import {DynamicProtoChangeDetector} from 'angular2/change_detection';
|
import {DynamicProtoChangeDetector} from 'angular2/change_detection';
|
||||||
|
|
||||||
@proxy
|
@proxy
|
||||||
|
@ -131,7 +130,7 @@ export function main() {
|
||||||
if (isBlank(lightDomAppInjector)) lightDomAppInjector = new Injector([]);
|
if (isBlank(lightDomAppInjector)) lightDomAppInjector = new Injector([]);
|
||||||
|
|
||||||
var proto = new ProtoElementInjector(null, 0, bindings, isPresent(shadowDomAppInjector));
|
var proto = new ProtoElementInjector(null, 0, bindings, isPresent(shadowDomAppInjector));
|
||||||
var inj = proto.instantiate(null, null, reflector);
|
var inj = proto.instantiate(null, null);
|
||||||
var preBuilt = isPresent(preBuiltObjects) ? preBuiltObjects : defaultPreBuiltObjects;
|
var preBuilt = isPresent(preBuiltObjects) ? preBuiltObjects : defaultPreBuiltObjects;
|
||||||
|
|
||||||
inj.instantiateDirectives(lightDomAppInjector, shadowDomAppInjector, preBuilt);
|
inj.instantiateDirectives(lightDomAppInjector, shadowDomAppInjector, preBuilt);
|
||||||
|
@ -144,12 +143,12 @@ export function main() {
|
||||||
var inj = new Injector([]);
|
var inj = new Injector([]);
|
||||||
|
|
||||||
var protoParent = new ProtoElementInjector(null, 0, parentBindings);
|
var protoParent = new ProtoElementInjector(null, 0, parentBindings);
|
||||||
var parent = protoParent.instantiate(null, null, reflector);
|
var parent = protoParent.instantiate(null, null);
|
||||||
|
|
||||||
parent.instantiateDirectives(inj, null, parentPreBuildObjects);
|
parent.instantiateDirectives(inj, null, parentPreBuildObjects);
|
||||||
|
|
||||||
var protoChild = new ProtoElementInjector(protoParent, 1, childBindings, false, 1);
|
var protoChild = new ProtoElementInjector(protoParent, 1, childBindings, false, 1);
|
||||||
var child = protoChild.instantiate(parent, null, reflector);
|
var child = protoChild.instantiate(parent, null);
|
||||||
child.instantiateDirectives(inj, null, defaultPreBuiltObjects);
|
child.instantiateDirectives(inj, null, defaultPreBuiltObjects);
|
||||||
|
|
||||||
return child;
|
return child;
|
||||||
|
@ -162,11 +161,11 @@ export function main() {
|
||||||
var shadowInj = inj.createChild([]);
|
var shadowInj = inj.createChild([]);
|
||||||
|
|
||||||
var protoParent = new ProtoElementInjector(null, 0, hostBindings, true);
|
var protoParent = new ProtoElementInjector(null, 0, hostBindings, true);
|
||||||
var host = protoParent.instantiate(null, null, reflector);
|
var host = protoParent.instantiate(null, null);
|
||||||
host.instantiateDirectives(inj, shadowInj, hostPreBuildObjects);
|
host.instantiateDirectives(inj, shadowInj, hostPreBuildObjects);
|
||||||
|
|
||||||
var protoChild = new ProtoElementInjector(protoParent, 0, shadowBindings, false, 1);
|
var protoChild = new ProtoElementInjector(protoParent, 0, shadowBindings, false, 1);
|
||||||
var shadow = protoChild.instantiate(null, host, reflector);
|
var shadow = protoChild.instantiate(null, host);
|
||||||
shadow.instantiateDirectives(shadowInj, null, null);
|
shadow.instantiateDirectives(shadowInj, null, null);
|
||||||
|
|
||||||
return shadow;
|
return shadow;
|
||||||
|
@ -199,9 +198,9 @@ export function main() {
|
||||||
var protoChild1 = new ProtoElementInjector(protoParent, 1, []);
|
var protoChild1 = new ProtoElementInjector(protoParent, 1, []);
|
||||||
var protoChild2 = new ProtoElementInjector(protoParent, 2, []);
|
var protoChild2 = new ProtoElementInjector(protoParent, 2, []);
|
||||||
|
|
||||||
var p = protoParent.instantiate(null, null, reflector);
|
var p = protoParent.instantiate(null, null);
|
||||||
var c1 = protoChild1.instantiate(p, null, reflector);
|
var c1 = protoChild1.instantiate(p, null);
|
||||||
var c2 = protoChild2.instantiate(p, null, reflector);
|
var c2 = protoChild2.instantiate(p, null);
|
||||||
|
|
||||||
expect(humanize(p, [
|
expect(humanize(p, [
|
||||||
[p, 'parent'],
|
[p, 'parent'],
|
||||||
|
@ -216,8 +215,8 @@ export function main() {
|
||||||
var protoParent = new ProtoElementInjector(null, 0, []);
|
var protoParent = new ProtoElementInjector(null, 0, []);
|
||||||
var protoChild = new ProtoElementInjector(protoParent, 1, [], false, distance);
|
var protoChild = new ProtoElementInjector(protoParent, 1, [], false, distance);
|
||||||
|
|
||||||
var p = protoParent.instantiate(null, null, reflector);
|
var p = protoParent.instantiate(null, null);
|
||||||
var c = protoChild.instantiate(p, null, reflector);
|
var c = protoChild.instantiate(p, null);
|
||||||
|
|
||||||
expect(c.directParent()).toEqual(p);
|
expect(c.directParent()).toEqual(p);
|
||||||
});
|
});
|
||||||
|
@ -227,8 +226,8 @@ export function main() {
|
||||||
var protoParent = new ProtoElementInjector(null, 0, []);
|
var protoParent = new ProtoElementInjector(null, 0, []);
|
||||||
var protoChild = new ProtoElementInjector(protoParent, 1, [], false, distance);
|
var protoChild = new ProtoElementInjector(protoParent, 1, [], false, distance);
|
||||||
|
|
||||||
var p = protoParent.instantiate(null, null, reflector);
|
var p = protoParent.instantiate(null, null);
|
||||||
var c = protoChild.instantiate(p, null, reflector);
|
var c = protoChild.instantiate(p, null);
|
||||||
|
|
||||||
expect(c.directParent()).toEqual(null);
|
expect(c.directParent()).toEqual(null);
|
||||||
});
|
});
|
||||||
|
@ -435,7 +434,7 @@ export function main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return viewContainer', function () {
|
it('should return viewContainer', function () {
|
||||||
var viewContainer = new ViewContainer(null, null, null, null, null, null);
|
var viewContainer = new ViewContainer(null, null, null, null, null);
|
||||||
var inj = injector([], null, null, new PreBuiltObjects(null, null, viewContainer, null, null));
|
var inj = injector([], null, null, new PreBuiltObjects(null, null, viewContainer, null, null));
|
||||||
|
|
||||||
expect(inj.get(ViewContainer)).toEqual(viewContainer);
|
expect(inj.get(ViewContainer)).toEqual(viewContainer);
|
||||||
|
|
|
@ -28,8 +28,6 @@ import {If} from 'angular2/src/directives/if';
|
||||||
|
|
||||||
import {ViewContainer} from 'angular2/src/core/compiler/view_container';
|
import {ViewContainer} from 'angular2/src/core/compiler/view_container';
|
||||||
|
|
||||||
import {reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
|
|
||||||
export function main() {
|
export function main() {
|
||||||
describe('integration tests', function() {
|
describe('integration tests', function() {
|
||||||
var compiler, tplResolver;
|
var compiler, tplResolver;
|
||||||
|
@ -58,11 +56,7 @@ export function main() {
|
||||||
var view, ctx, cd;
|
var view, ctx, cd;
|
||||||
function createView(pv) {
|
function createView(pv) {
|
||||||
ctx = new MyComp();
|
ctx = new MyComp();
|
||||||
view = pv.instantiate(
|
view = pv.instantiate(null, null);
|
||||||
null,
|
|
||||||
null,
|
|
||||||
reflector
|
|
||||||
);
|
|
||||||
view.hydrate(new Injector([]), null, ctx);
|
view.hydrate(new Injector([]), null, ctx);
|
||||||
cd = view.changeDetector;
|
cd = view.changeDetector;
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,7 +82,7 @@ export function main() {
|
||||||
|
|
||||||
function instantiateView(protoView) {
|
function instantiateView(protoView) {
|
||||||
evalContext = new Context();
|
evalContext = new Context();
|
||||||
view = protoView.instantiate(null, null, null);
|
view = protoView.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, evalContext);
|
view.hydrate(new Injector([]), null, evalContext);
|
||||||
changeDetector = view.changeDetector;
|
changeDetector = view.changeDetector;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,6 @@ import {ViewContainer} from 'angular2/src/core/compiler/view_container';
|
||||||
|
|
||||||
import {BrowserDomAdapter} from 'angular2/src/dom/browser_adapter';
|
import {BrowserDomAdapter} from 'angular2/src/dom/browser_adapter';
|
||||||
|
|
||||||
import {reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
|
|
||||||
export function main() {
|
export function main() {
|
||||||
BrowserDomAdapter.makeCurrent();
|
BrowserDomAdapter.makeCurrent();
|
||||||
describe('integration tests', function() {
|
describe('integration tests', function() {
|
||||||
|
@ -357,7 +355,7 @@ class MyComp {
|
||||||
}
|
}
|
||||||
|
|
||||||
function createView(pv) {
|
function createView(pv) {
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, {});
|
view.hydrate(new Injector([]), null, {});
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ export function main() {
|
||||||
var host = el('<div></div>');
|
var host = el('<div></div>');
|
||||||
var nodes = el('<div>view</div>');
|
var nodes = el('<div>view</div>');
|
||||||
var pv = new ProtoView(nodes, new DynamicProtoChangeDetector(null), null);
|
var pv = new ProtoView(nodes, new DynamicProtoChangeDetector(null), null);
|
||||||
var view = pv.instantiate(null, null, null);
|
var view = pv.instantiate(null, null);
|
||||||
|
|
||||||
strategy.attachTemplate(host, view);
|
strategy.attachTemplate(host, view);
|
||||||
var shadowRoot = DOM.getShadowRoot(host);
|
var shadowRoot = DOM.getShadowRoot(host);
|
||||||
|
@ -83,7 +83,7 @@ export function main() {
|
||||||
var host = el('<div><span>original content</span></div>');
|
var host = el('<div><span>original content</span></div>');
|
||||||
var nodes = el('<div>view</div>');
|
var nodes = el('<div>view</div>');
|
||||||
var pv = new ProtoView(nodes, new DynamicProtoChangeDetector(null), null);
|
var pv = new ProtoView(nodes, new DynamicProtoChangeDetector(null), null);
|
||||||
var view = pv.instantiate(null, null, null);
|
var view = pv.instantiate(null, null);
|
||||||
|
|
||||||
strategy.attachTemplate(host, view);
|
strategy.attachTemplate(host, view);
|
||||||
var firstChild = DOM.firstChild(host);
|
var firstChild = DOM.firstChild(host);
|
||||||
|
@ -218,7 +218,7 @@ export function main() {
|
||||||
var host = el('<div><span>original content</span></div>');
|
var host = el('<div><span>original content</span></div>');
|
||||||
var nodes = el('<div>view</div>');
|
var nodes = el('<div>view</div>');
|
||||||
var pv = new ProtoView(nodes, new DynamicProtoChangeDetector(null), null);
|
var pv = new ProtoView(nodes, new DynamicProtoChangeDetector(null), null);
|
||||||
var view = pv.instantiate(null, null, null);
|
var view = pv.instantiate(null, null);
|
||||||
|
|
||||||
strategy.attachTemplate(host, view);
|
strategy.attachTemplate(host, view);
|
||||||
var firstChild = DOM.firstChild(host);
|
var firstChild = DOM.firstChild(host);
|
||||||
|
|
|
@ -8,7 +8,6 @@ import {Injector} from 'angular2/di';
|
||||||
import {ProtoElementInjector, ElementInjector} from 'angular2/src/core/compiler/element_injector';
|
import {ProtoElementInjector, ElementInjector} from 'angular2/src/core/compiler/element_injector';
|
||||||
import {NativeShadowDomStrategy} from 'angular2/src/core/compiler/shadow_dom_strategy';
|
import {NativeShadowDomStrategy} from 'angular2/src/core/compiler/shadow_dom_strategy';
|
||||||
import {DynamicProtoChangeDetector, ChangeDetector, Lexer, Parser} from 'angular2/change_detection';
|
import {DynamicProtoChangeDetector, ChangeDetector, Lexer, Parser} from 'angular2/change_detection';
|
||||||
import {reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
|
|
||||||
function createView(nodes) {
|
function createView(nodes) {
|
||||||
var view = new View(null, nodes, new DynamicProtoChangeDetector(null), MapWrapper.create());
|
var view = new View(null, nodes, new DynamicProtoChangeDetector(null), MapWrapper.create());
|
||||||
|
@ -72,9 +71,9 @@ export function main() {
|
||||||
parentView = createView([dom.childNodes[0]]);
|
parentView = createView([dom.childNodes[0]]);
|
||||||
protoView = new ProtoView(el('<div>hi</div>'), new DynamicProtoChangeDetector(null),
|
protoView = new ProtoView(el('<div>hi</div>'), new DynamicProtoChangeDetector(null),
|
||||||
new NativeShadowDomStrategy(null));
|
new NativeShadowDomStrategy(null));
|
||||||
elementInjector = new ElementInjector(null, null, null, reflector);
|
elementInjector = new ElementInjector(null, null, null);
|
||||||
viewContainer = new ViewContainer(parentView, insertionElement, protoView, elementInjector,
|
viewContainer = new ViewContainer(parentView, insertionElement, protoView, elementInjector,
|
||||||
null, reflector);
|
null);
|
||||||
customViewWithOneNode = createView([el('<div>single</div>')]);
|
customViewWithOneNode = createView([el('<div>single</div>')]);
|
||||||
customViewWithTwoNodes = createView([el('<div>one</div>'), el('<div>two</div>')]);
|
customViewWithTwoNodes = createView([el('<div>one</div>'), el('<div>two</div>')]);
|
||||||
});
|
});
|
||||||
|
@ -219,7 +218,7 @@ export function main() {
|
||||||
new DynamicProtoChangeDetector(null), new NativeShadowDomStrategy(null));
|
new DynamicProtoChangeDetector(null), new NativeShadowDomStrategy(null));
|
||||||
pv.bindElement(new ProtoElementInjector(null, 1, [SomeDirective]));
|
pv.bindElement(new ProtoElementInjector(null, 1, [SomeDirective]));
|
||||||
pv.bindTextNode(0, parser.parseBinding('foo', null));
|
pv.bindTextNode(0, parser.parseBinding('foo', null));
|
||||||
fancyView = pv.instantiate(null, null, reflector);
|
fancyView = pv.instantiate(null, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('hydrating should update rootElementInjectors and parent change detector', () => {
|
it('hydrating should update rootElementInjectors and parent change detector', () => {
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {View} from 'angular2/src/core/compiler/view';
|
||||||
import {ViewContainer} from 'angular2/src/core/compiler/view_container';
|
import {ViewContainer} from 'angular2/src/core/compiler/view_container';
|
||||||
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone';
|
import {VmTurnZone} from 'angular2/src/core/zone/vm_turn_zone';
|
||||||
import {EventManager, DomEventsPlugin} from 'angular2/src/core/events/event_manager';
|
import {EventManager, DomEventsPlugin} from 'angular2/src/core/events/event_manager';
|
||||||
import {Reflector, reflector} from 'angular2/src/reflection/reflection';
|
import {reflector} from 'angular2/src/reflection/reflection';
|
||||||
|
|
||||||
@proxy
|
@proxy
|
||||||
@IMPLEMENTS(ViewContainer)
|
@IMPLEMENTS(ViewContainer)
|
||||||
|
@ -45,7 +45,7 @@ export function main() {
|
||||||
|
|
||||||
function createView(protoView, eventManager: EventManager = null) {
|
function createView(protoView, eventManager: EventManager = null) {
|
||||||
var ctx = new MyEvaluationContext();
|
var ctx = new MyEvaluationContext();
|
||||||
var view = protoView.instantiate(null, eventManager, reflector);
|
var view = protoView.instantiate(null, eventManager);
|
||||||
view.hydrate(null, null, ctx);
|
view.hydrate(null, null, ctx);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ export function main() {
|
||||||
var view;
|
var view;
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
var pv = new ProtoView(el('<div id="1"></div>'), new DynamicProtoChangeDetector(null), null);
|
var pv = new ProtoView(el('<div id="1"></div>'), new DynamicProtoChangeDetector(null), null);
|
||||||
view = pv.instantiate(null, null, reflector);
|
view = pv.instantiate(null, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should be dehydrated by default', () => {
|
it('should be dehydrated by default', () => {
|
||||||
|
@ -90,7 +90,7 @@ export function main() {
|
||||||
var fakeView = new FakeView();
|
var fakeView = new FakeView();
|
||||||
pv.returnToPool(fakeView);
|
pv.returnToPool(fakeView);
|
||||||
|
|
||||||
expect(pv.instantiate(null, null, reflector)).toBe(fakeView);
|
expect(pv.instantiate(null, null)).toBe(fakeView);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ export function main() {
|
||||||
it('should collect the root node in the ProtoView element', () => {
|
it('should collect the root node in the ProtoView element', () => {
|
||||||
var pv = new ProtoView(templateAwareCreateElement('<div id="1"></div>'),
|
var pv = new ProtoView(templateAwareCreateElement('<div id="1"></div>'),
|
||||||
new DynamicProtoChangeDetector(null), null);
|
new DynamicProtoChangeDetector(null), null);
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.nodes.length).toBe(1);
|
expect(view.nodes.length).toBe(1);
|
||||||
expect(DOM.getAttribute(view.nodes[0], 'id')).toEqual('1');
|
expect(DOM.getAttribute(view.nodes[0], 'id')).toEqual('1');
|
||||||
|
@ -149,7 +149,7 @@ export function main() {
|
||||||
pv.bindElement(null);
|
pv.bindElement(null);
|
||||||
pv.bindElementProperty(parser.parseBinding('a', null), 'prop', reflector.setter('prop'));
|
pv.bindElementProperty(parser.parseBinding('a', null), 'prop', reflector.setter('prop'));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.bindElements.length).toEqual(1);
|
expect(view.bindElements.length).toEqual(1);
|
||||||
expect(view.bindElements[0]).toBe(view.nodes[0]);
|
expect(view.bindElements[0]).toBe(view.nodes[0]);
|
||||||
|
@ -161,7 +161,7 @@ export function main() {
|
||||||
pv.bindElement(null);
|
pv.bindElement(null);
|
||||||
pv.bindElementProperty(parser.parseBinding('b', null), 'a', reflector.setter('a'));
|
pv.bindElementProperty(parser.parseBinding('b', null), 'a', reflector.setter('a'));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.bindElements.length).toEqual(1);
|
expect(view.bindElements.length).toEqual(1);
|
||||||
expect(view.bindElements[0]).toBe(view.nodes[0].childNodes[1]);
|
expect(view.bindElements[0]).toBe(view.nodes[0].childNodes[1]);
|
||||||
|
@ -178,7 +178,7 @@ export function main() {
|
||||||
pv.bindTextNode(0, parser.parseBinding('a', null));
|
pv.bindTextNode(0, parser.parseBinding('a', null));
|
||||||
pv.bindTextNode(2, parser.parseBinding('b', null));
|
pv.bindTextNode(2, parser.parseBinding('b', null));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.textNodes.length).toEqual(2);
|
expect(view.textNodes.length).toEqual(2);
|
||||||
expect(view.textNodes[0]).toBe(view.nodes[0].childNodes[0]);
|
expect(view.textNodes[0]).toBe(view.nodes[0].childNodes[0]);
|
||||||
|
@ -191,7 +191,7 @@ export function main() {
|
||||||
pv.bindElement(null);
|
pv.bindElement(null);
|
||||||
pv.bindTextNode(0, parser.parseBinding('b', null));
|
pv.bindTextNode(0, parser.parseBinding('b', null));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.textNodes.length).toEqual(1);
|
expect(view.textNodes.length).toEqual(1);
|
||||||
expect(view.textNodes[0]).toBe(view.nodes[0].childNodes[1].childNodes[0]);
|
expect(view.textNodes[0]).toBe(view.nodes[0].childNodes[1].childNodes[0]);
|
||||||
|
@ -206,7 +206,7 @@ export function main() {
|
||||||
var pv = new ProtoView(template, new DynamicProtoChangeDetector(null),
|
var pv = new ProtoView(template, new DynamicProtoChangeDetector(null),
|
||||||
new NativeShadowDomStrategy(null));
|
new NativeShadowDomStrategy(null));
|
||||||
pv.instantiateInPlace = true;
|
pv.instantiateInPlace = true;
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.nodes[0]).toBe(template);
|
expect(view.nodes[0]).toBe(template);
|
||||||
});
|
});
|
||||||
|
@ -215,7 +215,7 @@ export function main() {
|
||||||
var template = el('<div></div>')
|
var template = el('<div></div>')
|
||||||
var pv = new ProtoView(template, new DynamicProtoChangeDetector(null),
|
var pv = new ProtoView(template, new DynamicProtoChangeDetector(null),
|
||||||
new NativeShadowDomStrategy(null))
|
new NativeShadowDomStrategy(null))
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.nodes[0]).not.toBe(template);
|
expect(view.nodes[0]).not.toBe(template);
|
||||||
});
|
});
|
||||||
|
@ -235,7 +235,7 @@ export function main() {
|
||||||
new DynamicProtoChangeDetector(null), null);
|
new DynamicProtoChangeDetector(null), null);
|
||||||
pv.bindElement(new ProtoElementInjector(null, 1, [SomeDirective]));
|
pv.bindElement(new ProtoElementInjector(null, 1, [SomeDirective]));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.elementInjectors.length).toBe(1);
|
expect(view.elementInjectors.length).toBe(1);
|
||||||
expect(view.elementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
expect(view.elementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
||||||
|
@ -248,7 +248,7 @@ export function main() {
|
||||||
pv.bindElement(protoParent);
|
pv.bindElement(protoParent);
|
||||||
pv.bindElement(new ProtoElementInjector(protoParent, 1, [AnotherDirective]));
|
pv.bindElement(new ProtoElementInjector(protoParent, 1, [AnotherDirective]));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.elementInjectors.length).toBe(2);
|
expect(view.elementInjectors.length).toBe(2);
|
||||||
expect(view.elementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
expect(view.elementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
||||||
|
@ -264,9 +264,9 @@ export function main() {
|
||||||
pv.bindElement(testProtoElementInjector);
|
pv.bindElement(testProtoElementInjector);
|
||||||
|
|
||||||
var hostProtoInjector = new ProtoElementInjector(null, 0, []);
|
var hostProtoInjector = new ProtoElementInjector(null, 0, []);
|
||||||
var hostInjector = hostProtoInjector.instantiate(null, null, reflector);
|
var hostInjector = hostProtoInjector.instantiate(null, null);
|
||||||
var view;
|
var view;
|
||||||
expect(() => view = pv.instantiate(hostInjector, null, reflector)).not.toThrow();
|
expect(() => view = pv.instantiate(hostInjector, null)).not.toThrow();
|
||||||
expect(testProtoElementInjector.parentElementInjector).toBe(view.elementInjectors[0]);
|
expect(testProtoElementInjector.parentElementInjector).toBe(view.elementInjectors[0]);
|
||||||
expect(testProtoElementInjector.hostElementInjector).toBeNull();
|
expect(testProtoElementInjector.hostElementInjector).toBeNull();
|
||||||
});
|
});
|
||||||
|
@ -279,8 +279,8 @@ export function main() {
|
||||||
pv.bindElement(testProtoElementInjector);
|
pv.bindElement(testProtoElementInjector);
|
||||||
|
|
||||||
var hostProtoInjector = new ProtoElementInjector(null, 0, []);
|
var hostProtoInjector = new ProtoElementInjector(null, 0, []);
|
||||||
var hostInjector = hostProtoInjector.instantiate(null, null, reflector);
|
var hostInjector = hostProtoInjector.instantiate(null, null);
|
||||||
expect(() => pv.instantiate(hostInjector, null, reflector)).not.toThrow();
|
expect(() => pv.instantiate(hostInjector, null)).not.toThrow();
|
||||||
expect(testProtoElementInjector.parentElementInjector).toBeNull();
|
expect(testProtoElementInjector.parentElementInjector).toBeNull();
|
||||||
expect(testProtoElementInjector.hostElementInjector).toBe(hostInjector);
|
expect(testProtoElementInjector.hostElementInjector).toBe(hostInjector);
|
||||||
});
|
});
|
||||||
|
@ -295,7 +295,7 @@ export function main() {
|
||||||
pv.bindElement(protoParent);
|
pv.bindElement(protoParent);
|
||||||
pv.bindElement(new ProtoElementInjector(protoParent, 1, [AnotherDirective]));
|
pv.bindElement(new ProtoElementInjector(protoParent, 1, [AnotherDirective]));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.rootElementInjectors.length).toBe(1);
|
expect(view.rootElementInjectors.length).toBe(1);
|
||||||
expect(view.rootElementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
expect(view.rootElementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
||||||
|
@ -307,7 +307,7 @@ export function main() {
|
||||||
pv.bindElement(new ProtoElementInjector(null, 1, [SomeDirective]));
|
pv.bindElement(new ProtoElementInjector(null, 1, [SomeDirective]));
|
||||||
pv.bindElement(new ProtoElementInjector(null, 2, [AnotherDirective]));
|
pv.bindElement(new ProtoElementInjector(null, 2, [AnotherDirective]));
|
||||||
|
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(null, null, null);
|
view.hydrate(null, null, null);
|
||||||
expect(view.rootElementInjectors.length).toBe(2)
|
expect(view.rootElementInjectors.length).toBe(2)
|
||||||
expect(view.rootElementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
expect(view.rootElementInjectors[0].get(SomeDirective) instanceof SomeDirective).toBe(true);
|
||||||
|
@ -330,7 +330,7 @@ export function main() {
|
||||||
|
|
||||||
function createNestedView(protoView) {
|
function createNestedView(protoView) {
|
||||||
ctx = new MyEvaluationContext();
|
ctx = new MyEvaluationContext();
|
||||||
var view = protoView.instantiate(null, null, reflector);
|
var view = protoView.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, ctx);
|
view.hydrate(new Injector([]), null, ctx);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -638,7 +638,7 @@ export function main() {
|
||||||
var rootProtoView = ProtoView.createRootProtoView(pv, element,
|
var rootProtoView = ProtoView.createRootProtoView(pv, element,
|
||||||
someComponentDirective, new DynamicProtoChangeDetector(null),
|
someComponentDirective, new DynamicProtoChangeDetector(null),
|
||||||
new NativeShadowDomStrategy(null));
|
new NativeShadowDomStrategy(null));
|
||||||
var view = rootProtoView.instantiate(null, null, reflector);
|
var view = rootProtoView.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, null);
|
view.hydrate(new Injector([]), null, null);
|
||||||
expect(view.rootElementInjectors[0].get(SomeComponent)).not.toBe(null);
|
expect(view.rootElementInjectors[0].get(SomeComponent)).not.toBe(null);
|
||||||
});
|
});
|
||||||
|
@ -647,7 +647,7 @@ export function main() {
|
||||||
var rootProtoView = ProtoView.createRootProtoView(pv, element,
|
var rootProtoView = ProtoView.createRootProtoView(pv, element,
|
||||||
someComponentDirective, new DynamicProtoChangeDetector(null),
|
someComponentDirective, new DynamicProtoChangeDetector(null),
|
||||||
new NativeShadowDomStrategy(null));
|
new NativeShadowDomStrategy(null));
|
||||||
var view = rootProtoView.instantiate(null, null, reflector);
|
var view = rootProtoView.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, null);
|
view.hydrate(new Injector([]), null, null);
|
||||||
expect(element.shadowRoot.childNodes[0].childNodes[0].nodeValue).toEqual('hi');
|
expect(element.shadowRoot.childNodes[0].childNodes[0].nodeValue).toEqual('hi');
|
||||||
});
|
});
|
||||||
|
@ -753,10 +753,10 @@ class TestProtoElementInjector extends ProtoElementInjector {
|
||||||
super(parent, index, bindings, firstBindingIsComponent);
|
super(parent, index, bindings, firstBindingIsComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
instantiate(parent:ElementInjector, host:ElementInjector, reflector: Reflector):ElementInjector {
|
instantiate(parent:ElementInjector, host:ElementInjector):ElementInjector {
|
||||||
this.parentElementInjector = parent;
|
this.parentElementInjector = parent;
|
||||||
this.hostElementInjector = host;
|
this.hostElementInjector = host;
|
||||||
return super.instantiate(parent, host, reflector);
|
return super.instantiate(parent, host);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ export function main() {
|
||||||
|
|
||||||
function createView(pv) {
|
function createView(pv) {
|
||||||
component = new TestComponent();
|
component = new TestComponent();
|
||||||
view = pv.instantiate(null, null, null);
|
view = pv.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, component);
|
view.hydrate(new Injector([]), null, component);
|
||||||
cd = view.changeDetector;
|
cd = view.changeDetector;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ export function main() {
|
||||||
|
|
||||||
function createView(pv) {
|
function createView(pv) {
|
||||||
component = new TestComponent();
|
component = new TestComponent();
|
||||||
view = pv.instantiate(null, null, null);
|
view = pv.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, component);
|
view.hydrate(new Injector([]), null, component);
|
||||||
cd = view.changeDetector;
|
cd = view.changeDetector;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ export function main() {
|
||||||
|
|
||||||
function createView(pv) {
|
function createView(pv) {
|
||||||
component = new TestComponent();
|
component = new TestComponent();
|
||||||
view = pv.instantiate(null, null, null);
|
view = pv.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, component);
|
view.hydrate(new Injector([]), null, component);
|
||||||
cd = view.changeDetector;
|
cd = view.changeDetector;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ export function main() {
|
||||||
|
|
||||||
function createView(pv) {
|
function createView(pv) {
|
||||||
component = new TestComponent();
|
component = new TestComponent();
|
||||||
view = pv.instantiate(null, null, null);
|
view = pv.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, component);
|
view.hydrate(new Injector([]), null, component);
|
||||||
cd = view.changeDetector;
|
cd = view.changeDetector;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,8 +21,6 @@ import {ControlGroupDirective, ControlDirective, Control, ControlGroup, Optional
|
||||||
|
|
||||||
import * as validators from 'angular2/src/forms/validators';
|
import * as validators from 'angular2/src/forms/validators';
|
||||||
|
|
||||||
import {reflector} from 'angular2/src/reflection/reflection';
|
|
||||||
|
|
||||||
export function main() {
|
export function main() {
|
||||||
function detectChanges(view) {
|
function detectChanges(view) {
|
||||||
view.changeDetector.detectChanges();
|
view.changeDetector.detectChanges();
|
||||||
|
@ -50,7 +48,7 @@ export function main() {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
compiler.compile(componentType).then((pv) => {
|
compiler.compile(componentType).then((pv) => {
|
||||||
var view = pv.instantiate(null, null, reflector);
|
var view = pv.instantiate(null, null);
|
||||||
view.hydrate(new Injector([]), null, context);
|
view.hydrate(new Injector([]), null, context);
|
||||||
detectChanges(view);
|
detectChanges(view);
|
||||||
callback(view);
|
callback(view);
|
||||||
|
|
|
@ -33,11 +33,11 @@ export function main() {
|
||||||
|
|
||||||
var bindings = [A, B, C];
|
var bindings = [A, B, C];
|
||||||
var proto = new ProtoElementInjector(null, 0, bindings);
|
var proto = new ProtoElementInjector(null, 0, bindings);
|
||||||
var elementInjector = proto.instantiate(null, null, null);
|
var elementInjector = proto.instantiate(null, null);
|
||||||
|
|
||||||
function instantiate () {
|
function instantiate () {
|
||||||
for (var i = 0; i < iterations; ++i) {
|
for (var i = 0; i < iterations; ++i) {
|
||||||
var ei = proto.instantiate(null, null, null);
|
var ei = proto.instantiate(null, null);
|
||||||
ei.instantiateDirectives(appInjector, null, null);
|
ei.instantiateDirectives(appInjector, null, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {ExceptionHandler} from 'angular2/src/core/exception_handler';
|
||||||
import {
|
import {
|
||||||
bootstrap, Component, Viewport, Template, ViewContainer, Compiler, onChange, NgElement, Decorator
|
bootstrap, Component, Viewport, Template, ViewContainer, Compiler, onChange, NgElement, Decorator
|
||||||
} from 'angular2/angular2';
|
} from 'angular2/angular2';
|
||||||
import {Reflector, reflector} from 'angular2/src/reflection/reflection';
|
import {reflector} from 'angular2/src/reflection/reflection';
|
||||||
import {CompilerCache} from 'angular2/src/core/compiler/compiler';
|
import {CompilerCache} from 'angular2/src/core/compiler/compiler';
|
||||||
import {DirectiveMetadataReader} from 'angular2/src/core/compiler/directive_metadata_reader';
|
import {DirectiveMetadataReader} from 'angular2/src/core/compiler/directive_metadata_reader';
|
||||||
import {ShadowDomStrategy, NativeShadowDomStrategy, EmulatedUnscopedShadowDomStrategy} from 'angular2/src/core/compiler/shadow_dom_strategy';
|
import {ShadowDomStrategy, NativeShadowDomStrategy, EmulatedUnscopedShadowDomStrategy} from 'angular2/src/core/compiler/shadow_dom_strategy';
|
||||||
|
@ -300,10 +300,4 @@ export function setupReflectorForAngular() {
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
"annotations": []
|
"annotations": []
|
||||||
});
|
});
|
||||||
|
|
||||||
reflector.registerType(Reflector, {
|
|
||||||
"factory": () => reflector,
|
|
||||||
"parameters": [],
|
|
||||||
"annotations": []
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ import {ComponentUrlMapper} from 'angular2/src/core/compiler/component_url_mappe
|
||||||
import {StyleInliner} from 'angular2/src/core/compiler/style_inliner';
|
import {StyleInliner} from 'angular2/src/core/compiler/style_inliner';
|
||||||
import {CssProcessor} from 'angular2/src/core/compiler/css_processor';
|
import {CssProcessor} from 'angular2/src/core/compiler/css_processor';
|
||||||
|
|
||||||
import {Reflector, reflector} from 'angular2/src/reflection/reflection';
|
import {reflector} from 'angular2/src/reflection/reflection';
|
||||||
import {DOM} from 'angular2/src/dom/dom_adapter';
|
import {DOM} from 'angular2/src/dom/dom_adapter';
|
||||||
import {isPresent} from 'angular2/src/facade/lang';
|
import {isPresent} from 'angular2/src/facade/lang';
|
||||||
import {window, document, gc} from 'angular2/src/facade/browser';
|
import {window, document, gc} from 'angular2/src/facade/browser';
|
||||||
|
@ -171,7 +171,6 @@ function setupReflector() {
|
||||||
"annotations": []
|
"annotations": []
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
reflector.registerType(ComponentUrlMapper, {
|
reflector.registerType(ComponentUrlMapper, {
|
||||||
"factory": () => new ComponentUrlMapper(),
|
"factory": () => new ComponentUrlMapper(),
|
||||||
"parameters": [],
|
"parameters": [],
|
||||||
|
@ -191,12 +190,6 @@ function setupReflector() {
|
||||||
"annotations": []
|
"annotations": []
|
||||||
});
|
});
|
||||||
|
|
||||||
reflector.registerType(Reflector, {
|
|
||||||
"factory": () => reflector,
|
|
||||||
"parameters": [],
|
|
||||||
"annotations": []
|
|
||||||
});
|
|
||||||
|
|
||||||
reflector.registerGetters({
|
reflector.registerGetters({
|
||||||
'value': (a) => a.value,
|
'value': (a) => a.value,
|
||||||
'left': (a) => a.left,
|
'left': (a) => a.left,
|
||||||
|
|
|
@ -20,7 +20,7 @@ import {ComponentUrlMapper} from 'angular2/src/core/compiler/component_url_mappe
|
||||||
import {StyleInliner} from 'angular2/src/core/compiler/style_inliner';
|
import {StyleInliner} from 'angular2/src/core/compiler/style_inliner';
|
||||||
import {CssProcessor} from 'angular2/src/core/compiler/css_processor';
|
import {CssProcessor} from 'angular2/src/core/compiler/css_processor';
|
||||||
|
|
||||||
import {Reflector, reflector} from 'angular2/src/reflection/reflection';
|
import {reflector} from 'angular2/src/reflection/reflection';
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
reflector.registerType(app.HelloCmp, {
|
reflector.registerType(app.HelloCmp, {
|
||||||
|
@ -170,12 +170,6 @@ function setup() {
|
||||||
"annotations": []
|
"annotations": []
|
||||||
});
|
});
|
||||||
|
|
||||||
reflector.registerType(Reflector, {
|
|
||||||
"factory": () => reflector,
|
|
||||||
"parameters": [],
|
|
||||||
"annotations": []
|
|
||||||
});
|
|
||||||
|
|
||||||
reflector.registerGetters({
|
reflector.registerGetters({
|
||||||
"greeting": (a) => a.greeting
|
"greeting": (a) => a.greeting
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue