#javascript #angular #string #typescript
Вопрос:
У меня есть этот объект в файле ts компонента, который выглядит следующим образом:
someData = {
someValue: null,
unit: "centimeters"
},
В моем шаблоне (html-файл) Я должен проверить значение свойства «someValue«. Если его значение равно нулю, то отобразите единицу измерения, в противном случае отобразите значение someValue и единицу измерения вместе. У меня есть приведенный ниже код, но он, похоже, не работает. Может ли кто-нибудь указать мне правильное направление? Заранее спасибо!
<div>{{ someData?.someValue === null ? someData?.someValue.unit : someData?.someValue someData?.unit }}</div >
Ответ №1:
Вы можете использовать ngif
для проверки состояния и отображения данных:
<div *ngIf="someData?.someValue === null">{{someData.unit}}</div>
<div *ngIf="someData?.someValue!= null">{{someData.someValue}} {{someData.unit}}</div>
Ответ №2:
Ваши два значения в конце не будут отображаться правильно, потому что это исполняемый javascript, а не HTML, когда он заключен в двойные скобки.
Я бы предложил разделить это на две строки HTML.
<div *ngIf="someData?.someValue; else unit_only">{{someData.someValue}} {{someData.unit}}</div>
<ng-template #unit_only>{{someData?.unit}}</ng-template>
Или вы могли бы попробовать придерживаться своего оригинального подхода…
<div>{{ someData?.someValue === null ? someData?.unit : someData?.someValue ' ' someData?.unit }}</div>