Typsichers Binding für matSortDirection

Quaneu

Mitglied
Hallo zusammen,

ich benutze Angular und Martial (12.2.11). Ich will nun folgendes Binding:
html:
[CODE lang="html" title="Binding"]<table mat-table ... matSortDirection="{{sortOrder}}">[/CODE]
ts:
[CODE lang="java" title="Code"] public sortOrder: SortDirection = '';[/CODE]

Leider bekomme ich jedoch diesen Fehler:
Type 'string' is not assignable to type 'SortDirection'.

Wenn ich anstatt {{sortOrder}} z.B. "asc" schreibe geht es.

Was muss ich machen, damit das Binding typsicher funktioniert.

Schöne Grüße
Quaneu
 

Quaneu

Mitglied
Vielen Dank für die schnelle Antwort.

Jetzt hätte ich noch eine Frage dazu. Denn ich denke es sollte schon bei

matSortDirection="{{sortOrder}}"

bleiben, da dies eine Initialisierung ist. Binding ist wohl an dieser Stelle das falsche Wort, Entschuldige.

Hier das "ganze" Beispiel:
[CODE lang="html" title="Html"]<table mat-table [dataSource]="data" [hidden]="!data"
matSort (matSortChange)="loadData()"
matSortActive="{{sortColumn}}" matSortDirection="{{sortOrder}}">[/CODE]

Ich lese gerade ein Buch und in diesem ist dieses Beispiel, leider lässt es sich bei mir nicht kompilieren, da die Checks strenger sind. Jedoch würde ich sie dabei belassen, wenn es geht. D.h. an dieser Stelle typsicher bleiben.
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Das eine ist ein Binding - wie ich es dir gezeigt habe, das andere was du machst ist eine Text interpolation (HIER). Typsicher fährst du auf jedefall mit dem Binding.
 

Quaneu

Mitglied
Ok. Danke. Dann ändere ich es zu einem Binding.

Was ich noch nicht ganz verstehe, matSortDirection="asc" geht.

Bei der Text interpolation steht
More generally, the text between the braces is a template expression that Angular first evaluates and then converts to a string.

D.h. am Ende steht auch der string "asc" (wenn die Variable den Wert hat).

Sorry, aber ich würde das nur noch verstehen wollen, denn habe ich nichts in dem Buch gefunde.
 

mrBrown

Super-Moderator
Mitarbeiter
Bei der Text interpolation steht
More generally, the text between the braces is a template expression that Angular first evaluates and then converts to a string.


D.h. am Ende steht auch der string "asc" (wenn die Variable den Wert hat).
"asc" ist der Wert, der Typ ist durch die "template expression" aber string, und: "Type 'string' is not assignable to type 'SortDirection'"
 

Flown

Administrator
Mitarbeiter
Die Frage ist wann der Wert evaluiert wird.
Bei der text interpolation steht auch dabei, dass sie idempodent sein sollte (side-effect-free). Was dein change nicht ist, weil die table damit verändert wird.
Auch die change-detection läuft hier anders und kann zu Fehlern führen.

Wenn du den Wert nicht verändern möchtest, sondern das von code->view bringen möchtest (und somit die view steuern) musst du das mit bindings machen. Wenn du Werte anzeigen möchtest, dann mit interpolation.

Wenn es sich so und so nicht ändert, dann lass es einfach auf matSortDirection="asc", keinen Grund das via Variable zu lösen.
 

mrBrown

Super-Moderator
Mitarbeiter
Bei der text interpolation steht auch dabei, dass sie idempodent sein sollte (side-effect-free).
Das dürfte sich doch nur auf die Interpolation selbst beziehen, und die ist, solange primitive Werte benutzt weden, immer idempodent & side-effect-free?

Geht dabei doch eher um Dinge wie in der Expression Methoden aufrufen, die anderen Zustand ändern.
 

Quaneu

Mitglied
Wie gesagt, das ist ein Beispiel aus dem Buch "ASP.NET Core 5 and Angular". Und sie setzen im Code den default, was ich nicht ganz so schelcht finde, da dies auch nicht ins html gehört, finde ich.

Ok. D.h. wenn ich "asc" schreibe ist es schon kein "string" mehr und bei der Interpolation ist es sicher ein string.

Damit kann ich erstmal leben ;)

Vielen Dank für eure Hilfe
 

Flown

Administrator
Mitarbeiter
Das dürfte sich doch nur auf die Interpolation selbst beziehen, und die ist, solange primitive Werte benutzt weden, immer idempodent & side-effect-free?
Du hast recht ... ich hätte auch aufmerksamer darüber fliegen sollen.
Ok. D.h. wenn ich "asc" schreibe ist es schon kein "string" mehr und bei der Interpolation ist es sicher ein string.
Wenn die view gerendet ist, dann steht, egal aus welcher quelle, asc drinnen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Javascript Tutorial für DOM Manipulationen? Angular, React, JQuery - Fragen zu JavaScript 0
R Die Typisierung Service[] ergibt für mich keinen Sinn Angular, React, JQuery - Fragen zu JavaScript 5
N Cookies setzen für Verzeichnis Angular, React, JQuery - Fragen zu JavaScript 4
N Überprüfungsbutton für ein Eingabeformular erstellen Angular, React, JQuery - Fragen zu JavaScript 16
B PullDown erstellen für webseite? Angular, React, JQuery - Fragen zu JavaScript 12
X NegaMax für TicTacToe in JS gewinnt nicht... Angular, React, JQuery - Fragen zu JavaScript 11
P Bildschirmtastatur für Spiele Angular, React, JQuery - Fragen zu JavaScript 6
M Mit Ajax Daten als Eingabe für Dyngraph erzeugen Angular, React, JQuery - Fragen zu JavaScript 6
L [JavaScript] Mehrere Variablen für Live-Suche in MySql-DB Angular, React, JQuery - Fragen zu JavaScript 0
A Hilfe für guten Zweck Angular, React, JQuery - Fragen zu JavaScript 6
J Lese Webseite aus für LinkPreview Angular, React, JQuery - Fragen zu JavaScript 1
A Script für Benachrichtigung Angular, React, JQuery - Fragen zu JavaScript 9
S Suche Lösung für einen Slider mit Textverlinkung Angular, React, JQuery - Fragen zu JavaScript 2
L Suche D3 Tutorial (speziell für Sunburst-Darstellung...) Angular, React, JQuery - Fragen zu JavaScript 2
H Javascript für wordpress "open new window" Angular, React, JQuery - Fragen zu JavaScript 1
N JavaScript für Touch Devices bei DropDown Menü Angular, React, JQuery - Fragen zu JavaScript 4
F Schnellen Browser für HTML mit JS drin. Angular, React, JQuery - Fragen zu JavaScript 6
Fab1 [SUCHE] JavaScript Buch für Umsteiger Angular, React, JQuery - Fragen zu JavaScript 4
K Webapp für Iphone Safari Browser und Links Angular, React, JQuery - Fragen zu JavaScript 6
H HTML5 basierter Client für Webkartendienste auf Smartphones Angular, React, JQuery - Fragen zu JavaScript 2
F Dropdownmenü für JavaScript Angular, React, JQuery - Fragen zu JavaScript 5
S OnKlick für alle Objekte gleicher Art Angular, React, JQuery - Fragen zu JavaScript 17
J Dynamic Markers für POIs aus Postgresdatenbank Angular, React, JQuery - Fragen zu JavaScript 8
H Gadgeterweitung für Kostal Piko Angular, React, JQuery - Fragen zu JavaScript 5
R Anleitung für einen Konfetti Regen Angular, React, JQuery - Fragen zu JavaScript 9
D Kontrollkästchen/Checkbox automatisch aktivieren ! (für Profis) JavaScript Angular, React, JQuery - Fragen zu JavaScript 4
S Javascript für Teamvergabe gesucht. Angular, React, JQuery - Fragen zu JavaScript 4
S Skript für Greasemonkey Angular, React, JQuery - Fragen zu JavaScript 3
C Play und Stop-Error für Musik Angular, React, JQuery - Fragen zu JavaScript 4
A Programmierer für "kleines" Javaprogramm gesucht Angular, React, JQuery - Fragen zu JavaScript 2
G finde Einstellmöglichkeiten für Menue nicht. Angular, React, JQuery - Fragen zu JavaScript 2
M Hilfe gesucht für ein Projekt Angular, React, JQuery - Fragen zu JavaScript 1
K Suche Scrollscript für Objekte Angular, React, JQuery - Fragen zu JavaScript 3
E Fragen zu java Navigation für Internetseite Angular, React, JQuery - Fragen zu JavaScript 2
T Höhe und Breite übergeben für IE! Angular, React, JQuery - Fragen zu JavaScript 2
L Dauerlaufzeile mit Fotos für html Angular, React, JQuery - Fragen zu JavaScript 2
B Einen Timer für Windows Angular, React, JQuery - Fragen zu JavaScript 4
M Script für Namen? Angular, React, JQuery - Fragen zu JavaScript 5
D Inputfeld für Preiseingabe Angular, React, JQuery - Fragen zu JavaScript 6
K Fragen für Praktikum-aber keine Ahnung! Angular, React, JQuery - Fragen zu JavaScript 4
B Zähler für Eingabefeld Angular, React, JQuery - Fragen zu JavaScript 5
D 5 € Musicload Gutschein für Antwort: Formular mit JavaScript Angular, React, JQuery - Fragen zu JavaScript 10
N Java Refresh-Script für Java-Newb Angular, React, JQuery - Fragen zu JavaScript 4
K Bild soll nach 5 Sekunden für 5 Sekunden erscheinen Angular, React, JQuery - Fragen zu JavaScript 5
S Skript für Bannerwechsel Angular, React, JQuery - Fragen zu JavaScript 3
N Java script für detailierten Text anzeigen gesucht Angular, React, JQuery - Fragen zu JavaScript 4
A Timeoutfunktion für JavaScript Angular, React, JQuery - Fragen zu JavaScript 2

Ähnliche Java Themen

Neue Themen


Oben