feat(view): reimplemented property setters using change detection

This commit is contained in:
vsavkin
2015-04-21 11:47:53 -07:00
parent 8a92a1f13e
commit 8ccafb0524
36 changed files with 510 additions and 469 deletions

View File

@ -23,6 +23,7 @@ export function main() {
someDecorator,
someDecoratorIgnoringChildren,
someDecoratorWithProps,
someDecoratorWithHostProperties,
someDecoratorWithEvents,
someDecoratorWithGlobalEvents
];
@ -112,12 +113,14 @@ export function main() {
expect(simpleProp.source).toEqual('someValue');
});
it('should store working property setters', () => {
var element = el('<input some-decor-props>');
it('should bind host directive properties', () => {
var element = el('<input some-decor-with-host-props>');
var results = process(element);
var setter = MapWrapper.get(results[0].propertySetters, 'value');
setter(element, 'abc');
expect(element.value).toEqual('abc');
var directiveBinding = results[0].directives[0];
var ast = MapWrapper.get(directiveBinding.hostPropertyBindings, 'hostProperty');
expect(ast.source).toEqual('dirProp');
});
it('should read attribute values', () => {
@ -256,10 +259,16 @@ var someDecoratorWithProps = new DirectiveMetadata({
'dirProp': 'elProp',
'doubleProp': 'elProp | double'
}),
setters: ['value'],
readAttributes: ['some-attr']
});
var someDecoratorWithHostProperties = new DirectiveMetadata({
selector: '[some-decor-with-host-props]',
hostProperties: MapWrapper.createFromStringMap({
'dirProp': 'hostProperty'
})
});
var someDecoratorWithEvents = new DirectiveMetadata({
selector: '[some-decor-events]',
hostListeners: MapWrapper.createFromStringMap({