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);
}