diff --git a/CHANGELOG.md b/CHANGELOG.md index c8404d42..44bd9b7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ ## ngrx-forms Changelog + +### 2.1.2 + +#### Bugfixes + +* fix issue that caused `select` elements to get assigned wrong initial value, closes [#32](https://github.com/MrWolfZ/ngrx-forms/issues/32) + ### 2.1.1 diff --git a/src/view-adapter/select-multiple.spec.ts b/src/view-adapter/select-multiple.spec.ts index 5edc766c..a2398355 100644 --- a/src/view-adapter/select-multiple.spec.ts +++ b/src/view-adapter/select-multiple.spec.ts @@ -363,4 +363,10 @@ describe(NgrxSelectMultipleOption.name, () => { it('should work if option is created without view adapter', () => { expect(new NgrxSelectMultipleOption({} as any, {} as any, null as any)).toBeDefined(); }); + + it('ngOnInit should not change the element if no matching view adapter is injected', () => { + option = new NgrxSelectMultipleOption({} as any, renderer, null as any); + option.ngOnInit(); + expect(renderer.setProperty).not.toHaveBeenCalled(); + }); }); diff --git a/src/view-adapter/select-multiple.ts b/src/view-adapter/select-multiple.ts index b164a7d7..96ae64e9 100644 --- a/src/view-adapter/select-multiple.ts +++ b/src/view-adapter/select-multiple.ts @@ -116,6 +116,10 @@ const NULL_VIEW_ADAPTER: NgrxSelectMultipleViewAdapter = { updateOptionValue: () => void 0, } as any; +const NULL_RENDERER: Renderer2 = { + setProperty: () => void 0, +} as any; + @Directive({ // tslint:disable-next-line:directive-selector selector: 'option', @@ -128,6 +132,7 @@ export class NgrxSelectMultipleOption implements OnInit, OnDestroy { private renderer: Renderer2, @Host() @Optional() private viewAdapter: NgrxSelectMultipleViewAdapter, ) { + this.renderer = viewAdapter ? renderer : NULL_RENDERER; this.viewAdapter = viewAdapter || NULL_VIEW_ADAPTER; this.id = this.viewAdapter.registerOption(this); }