Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 02b62fb

Browse files
committed
fix(template): fix properties not initialized
Resolves "@rx-angular/template": "^16.0.0" -> Cannot read properties of undefined (reading 'config') #1580
1 parent ed94f60 commit 02b62fb

File tree

4 files changed

+63
-48
lines changed

4 files changed

+63
-48
lines changed

libs/template/for/src/lib/for.directive.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import {
22
ChangeDetectorRef,
33
Directive,
44
DoCheck,
5-
ElementRef,
65
EmbeddedViewRef,
76
ErrorHandler,
7+
inject,
88
Input,
99
IterableDiffers,
1010
NgIterable,
@@ -82,6 +82,22 @@ declare const ngDevMode: boolean;
8282
export class RxFor<T, U extends NgIterable<T> = NgIterable<T>>
8383
implements OnInit, DoCheck, OnDestroy
8484
{
85+
/** @internal */
86+
private iterableDiffers = inject(IterableDiffers);
87+
/** @internal */
88+
private cdRef = inject(ChangeDetectorRef);
89+
/** @internal */
90+
private ngZone = inject(NgZone);
91+
/** @internal */
92+
private templateRef =
93+
inject<TemplateRef<RxForViewContext<T, U>>>(TemplateRef);
94+
/** @internal */
95+
private viewContainerRef = inject(ViewContainerRef);
96+
/** @internal */
97+
private strategyProvider = inject(RxStrategyProvider);
98+
/** @internal */
99+
private errorHandler = inject(ErrorHandler);
100+
85101
/** @internal */
86102
private staticValue?: U;
87103
/** @internal */
@@ -383,18 +399,6 @@ export class RxFor<T, U extends NgIterable<T> = NgIterable<T>>
383399
return this._template || this.templateRef;
384400
}
385401

386-
/** @internal */
387-
constructor(
388-
private iterableDiffers: IterableDiffers,
389-
private cdRef: ChangeDetectorRef,
390-
private ngZone: NgZone,
391-
private eRef: ElementRef,
392-
private templateRef: TemplateRef<RxForViewContext<T, U>>,
393-
private readonly viewContainerRef: ViewContainerRef,
394-
private strategyProvider: RxStrategyProvider,
395-
private errorHandler: ErrorHandler
396-
) {}
397-
398402
/** @internal */
399403
private strategyInput$ = new ReplaySubject<
400404
RxStrategyNames | Observable<RxStrategyNames>

libs/template/if/src/lib/if.directive.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,36 @@ import {
99
SimpleChanges,
1010
TemplateRef,
1111
ViewContainerRef,
12+
inject,
1213
} from '@angular/core';
1314
import { coerceAllFactory } from '@rx-angular/cdk/coercing';
1415
import {
15-
createTemplateNotifier,
1616
RxNotificationKind,
17+
createTemplateNotifier,
1718
} from '@rx-angular/cdk/notifications';
1819
import {
1920
RxStrategyNames,
2021
RxStrategyProvider,
2122
} from '@rx-angular/cdk/render-strategies';
2223
import {
23-
createTemplateManager,
2424
RxTemplateManager,
25+
createTemplateManager,
2526
} from '@rx-angular/cdk/template';
2627
import {
27-
merge,
2828
NEVER,
2929
NextObserver,
3030
Observable,
3131
ObservableInput,
3232
ReplaySubject,
3333
Subject,
3434
Subscription,
35+
merge,
3536
} from 'rxjs';
36-
import { mergeAll, filter, map } from 'rxjs/operators';
37+
import { filter, map, mergeAll } from 'rxjs/operators';
3738
import {
3839
RxIfTemplateNames,
39-
rxIfTemplateNames,
4040
RxIfViewContext,
41+
rxIfTemplateNames,
4142
} from './model/index';
4243

4344
/**
@@ -69,6 +70,17 @@ import {
6970
export class RxIf<T = unknown>
7071
implements OnInit, OnChanges, OnDestroy, OnChanges
7172
{
73+
/** @internal */
74+
private strategyProvider = inject(RxStrategyProvider);
75+
/** @internal */
76+
private cdRef = inject(ChangeDetectorRef);
77+
/** @internal */
78+
private ngZone = inject(NgZone);
79+
/** @internal */
80+
private templateRef = inject<TemplateRef<RxIfViewContext<T>>>(TemplateRef);
81+
/** @internal */
82+
private viewContainerRef = inject(ViewContainerRef);
83+
7284
/** @internal */
7385
private subscription = new Subscription();
7486
/** @internal */
@@ -477,14 +489,6 @@ export class RxIf<T = unknown>
477489
return this.then ? this.then : this.templateRef;
478490
}
479491

480-
constructor(
481-
private strategyProvider: RxStrategyProvider,
482-
private cdRef: ChangeDetectorRef,
483-
private ngZone: NgZone,
484-
private readonly templateRef: TemplateRef<RxIfViewContext<T>>,
485-
private readonly viewContainerRef: ViewContainerRef
486-
) {}
487-
488492
/** @internal */
489493
ngOnInit() {
490494
this.subscription.add(

libs/template/let/src/lib/let.directive.ts

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {
22
ChangeDetectorRef,
33
Directive,
44
ErrorHandler,
5+
inject,
56
Input,
67
NgZone,
78
OnChanges,
@@ -40,7 +41,7 @@ import {
4041
Subject,
4142
Subscription,
4243
} from 'rxjs';
43-
import { map, filter } from 'rxjs/operators';
44+
import { filter, map } from 'rxjs/operators';
4445

4546
/** @internal */
4647
type RxLetTemplateNames = 'nextTpl' | RxBaseTemplateNames;
@@ -95,6 +96,20 @@ export interface RxLetViewContext<T> extends RxViewContext<T> {
9596
@Directive({ selector: '[rxLet]', standalone: true })
9697
// eslint-disable-next-line @angular-eslint/directive-class-suffix
9798
export class RxLet<U> implements OnInit, OnDestroy, OnChanges {
99+
/** @internal */
100+
private strategyProvider = inject(RxStrategyProvider);
101+
/** @internal */
102+
private cdRef = inject(ChangeDetectorRef);
103+
/** @internal */
104+
private ngZone = inject(NgZone);
105+
/** @internal */
106+
private nextTemplateRef =
107+
inject<TemplateRef<RxLetViewContext<U>>>(TemplateRef);
108+
/** @internal */
109+
private viewContainerRef = inject(ViewContainerRef);
110+
/** @internal */
111+
private errorHandler = inject(ErrorHandler);
112+
98113
static ngTemplateGuard_rxLet: 'binding';
99114

100115
/**
@@ -469,15 +484,6 @@ export class RxLet<U> implements OnInit, OnDestroy, OnChanges {
469484
*/
470485
@Input('rxLetPatchZone') patchZone = this.strategyProvider.config.patchZone;
471486

472-
constructor(
473-
private strategyProvider: RxStrategyProvider,
474-
public cdRef: ChangeDetectorRef,
475-
private ngZone: NgZone,
476-
private readonly nextTemplateRef: TemplateRef<RxLetViewContext<U>>,
477-
private readonly viewContainerRef: ViewContainerRef,
478-
private errorHandler: ErrorHandler
479-
) {}
480-
481487
/** @internal */
482488
private observablesHandler = createTemplateNotifier<U>();
483489
/** @internal */

libs/template/push/src/lib/push.pipe.ts

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ import {
44
OnDestroy,
55
Pipe,
66
PipeTransform,
7+
inject,
78
untracked,
89
} from '@angular/core';
10+
import {
11+
RxNotification,
12+
RxNotificationKind,
13+
createTemplateNotifier,
14+
} from '@rx-angular/cdk/notifications';
915
import {
1016
RxStrategyNames,
1117
RxStrategyProvider,
1218
strategyHandling,
1319
} from '@rx-angular/cdk/render-strategies';
14-
import {
15-
createTemplateNotifier,
16-
RxNotification,
17-
RxNotificationKind,
18-
} from '@rx-angular/cdk/notifications';
1920
import {
2021
MonoTypeOperatorFunction,
2122
NextObserver,
@@ -26,9 +27,9 @@ import {
2627
Unsubscribable,
2728
} from 'rxjs';
2829
import {
30+
filter,
2931
shareReplay,
3032
skip,
31-
filter,
3233
switchMap,
3334
tap,
3435
withLatestFrom,
@@ -87,6 +88,12 @@ import {
8788
*/
8889
@Pipe({ name: 'push', pure: false, standalone: true })
8990
export class RxPush implements PipeTransform, OnDestroy {
91+
/** @internal */
92+
private strategyProvider = inject(RxStrategyProvider);
93+
/** @internal */
94+
private cdRef = inject(ChangeDetectorRef);
95+
/** @internal */
96+
private ngZone = inject(NgZone);
9097
/**
9198
* @internal
9299
* This is typed as `any` because the type cannot be inferred
@@ -112,12 +119,6 @@ export class RxPush implements PipeTransform, OnDestroy {
112119
/** @internal */
113120
private _renderCallback: NextObserver<any>;
114121

115-
constructor(
116-
private strategyProvider: RxStrategyProvider,
117-
private cdRef: ChangeDetectorRef,
118-
private ngZone: NgZone
119-
) {}
120-
121122
transform<U>(
122123
potentialObservable: null,
123124
config?: RxStrategyNames | Observable<RxStrategyNames>,

0 commit comments

Comments
 (0)