diff --git a/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.ts b/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.ts index 89191ee9d5d..eb977df45f3 100644 --- a/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.ts +++ b/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.ts @@ -51,25 +51,23 @@ function processLexicalScope(view: ViewCompilation, ops: ir.OpList { + if (expr instanceof ir.ContextExpr) { + if (!scope.has(expr.view)) { + throw new Error( + `No context found for reference to view ${expr.view} from view ${view.xref}`); + } + return scope.get(expr.view)!; + } else { + return expr; + } + }, ir.VisitorContextFlag.None); } } - -for (const op of ops) { - ir.transformExpressionsInOp(op, expr => { - if (expr instanceof ir.ContextExpr) { - if (!scope.has(expr.view)) { - throw new Error( - `No context found for reference to view ${expr.view} from view ${view.xref}`); - } - return scope.get(expr.view)!; - } else { - return expr; - } - }, ir.VisitorContextFlag.None); -} -} diff --git a/packages/core/test/acceptance/signal-components/input_bindings.spec.ts b/packages/core/test/acceptance/signal-components/input_bindings.spec.ts index f0e14007517..04c23804886 100644 --- a/packages/core/test/acceptance/signal-components/input_bindings.spec.ts +++ b/packages/core/test/acceptance/signal-components/input_bindings.spec.ts @@ -10,6 +10,8 @@ import {USE_TEMPLATE_PIPELINE} from '@angular/compiler/src/template/pipeline/swi import {Component, input} from '@angular/core'; import {TestBed} from '@angular/core/testing'; +import {Input} from '../../../src/metadata'; + if (!USE_TEMPLATE_PIPELINE) { console.error( @@ -23,11 +25,11 @@ describe('Signal component inputs', () => { @Component({ selector: 'print', signals: true, - template: `num()`, + template: `{{num()}}`, standalone: true, }) class Print { - num = input(0); + @Input() num = input(0); } @Component({