Я использую угловой 5, и я пытаюсь проверить значение переменной в html-шаблоне компонента.
Так выглядит примерно так:
<div *ngIf="item='somevalue'">
Я получаю эту ошибку:
ht Ошибка: ошибки анализа шаблона:
Parser Error: Bindings cannot contain assignments at column 17 in...
Разве это невозможно сделать с угловым?
* ngIf работать как это *ngIf="expression"
где expression
заменяет простой оператор Javascript, который возвращает boolean
. Но вы используете one =
и это означает, что вы назначаете someValue
для свойства item
и если значение не является ложным, оно вернет вам true
.
В вашем случае вам нужно написать *ngIf="item === 'somevalue'"
.
Вы выполняете задание вместо сравнения
<div *ngIf="item==='somevalue'">
Вы выполняете задание с использованием оператора single =.
Используйте double = == operator для проверки равенства или лучшего использования === для проверки строгого равенства.
<div *ngIf="item === 'somevalue'">
===
в Javascript.
измените его на item==='somevalue'
. опечатка вероятно
Там должно быть никаких кавычек внутри кавычек вне слоя. То есть должен быть только ОДИН слой цитат. Моя похожа на следующее:
<ng-container *ngFor="let event of events">
<ng-container *ngIf="event._id===id">
....
</ng-container>
</ng-container>
В показанном выше примере " event._id " - это " _id " "события", а " id " справа от уравнения - это свойство из файла .ts компонента.
Оба "==" и "===" работают нормально. И это НЕ будет работать, если вы поместите какие-либо кавычки внутрь.
используйте *ngIf="event._id==='id' "
чтобы подчеркнуть тип идентификатора в виде строки. в противном случае *ngIf
предназначен для логических, даже не выражений с такими операторами, как <, >,&&,||
, на факте, что числа не будут работать как ожидалось. а также выражения типа marksArray.length ===0
работать. потому что 0 принимается за тип строки.
надеюсь это поможет
<div *ngIf="item=='somevalue'">