javascript / expert
Snippet
Statussynchronisierung mit Linked Signals für kontrollierte Veränderlichkeit
Ein linkedSignal ist ein beschreibbares Signal, das seinen Wert automatisch zurücksetzt oder neu berechnet, wenn sich ein Quell-Signal ändert. Im Gegensatz zu computed signals, die schreibgeschützt sind, erlauben linkedSignals manuelle Aktualisierungen, während sie eine deklarative Abhängigkeit für ihren 'Standardzustand' beibehalten.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { signal, linkedSignal } from '@angular/core';export class ProductManager {categories = signal(['Electronics', 'Books']);selectedCategory = signal('Electronics');// Resets sub-selection whenever the parent category changesselectedProduct = linkedSignal({source: this.selectedCategory,computation: (cat) => `First ${cat} Item`});manualOverride(name: string) {// Unlike computed(), linkedSignal is writablethis.selectedProduct.set(name);}}
angular
Erklärung
1
source: this.selectedCategory
Das Signal, das ein Zurücksetzen des linkedSignals auslöst, wenn sich sein Wert ändert.
2
computation: (cat) => ...
Eine Funktion, die den neuen Wert des Signals basierend auf der Änderung der Quelle bestimmt.
3
this.selectedProduct.set(name);
Zeigt, dass linkedSignal beschreibbar ist, wodurch der UI-Zustand von der Standardberechnung abweichen kann.