HTML выбран не работает с Angular 6 - PullRequest
0 голосов
/ 24 февраля 2019

Я работаю с и в угловых значениях,

В моем шаблоне есть жестко закодированное перечисление в качестве возможного значения:

<div class="col-lg-9">
  <select id="content_type_select" name="content_type"  class="form-control multiselect-select-one" [(ngModel)]="selectedContent.contentType" data-fouc>
    <option [selected]="selectedContent.contentType===ContentType.Image" [value]="ContentType.Image">Image</option>
    <option [selected]="selectedContent.contentType===ContentType.Video" [value]="ContentType.Video">Video</option>
    <option [selected]="selectedContent.contentType===ContentType.Text"  [value]="ContentType.Text">Txt</option>
    <option [selected]="selectedContent.contentType===ContentType.HTML"  [value]="ContentType.HTML">HTML</option>
  </select>
</div>

В моем машинописном тексте я отправляю selectedContent в шаблон иЯ вошел в cosole, чтобы проверить значение моего selectedContent, и оно выглядит так:

enter image description here Как вы можете видеть, когда у меня console.log(this.selectedContent) есть свойство contentType, котороеимеет значение 1, и в моем раскрывающемся списке должно быть выбрано изображение, но ничего не выбрано фактически ..

enter image description here

Но если я напишу [selected]="true", тоэтот вариант выбран ... как получилось: /

Спасибо, ребята

Приветствия

1 Ответ

0 голосов
/ 24 февраля 2019

Я думаю, вам нужно предоставить немного больше контекста (например, реализацию перечисления ContentType ).Но позвольте мне дать вам обычный ответ для такого рода проблем.

Перечисления не делаются автоматически доступными в шаблоне просто потому, что они импортируются в класс компонента.Предполагая, что у вас есть перечисление, подобное

export enum ContentType {
  Image = 1,
  Video = 2,
  Text = 3,
  HTML = 4
}

. Если вам нужно использовать его из шаблона, оно должно сначала быть связано с каким-либо общедоступным свойством класса, например, public readonly contentType = ContentType, а затем ссылаться на это следующим образом в коде шаблона:

<select id="content_type_select" name="content_type"  class="form-control multiselect-select-one" [(ngModel)]="selectedContent.contentType" data-fouc>
    <option [selected]="selectedContent.contentType === contentType.Image" [value]="contentType.Image">Image</option>
    <option [selected]="selectedContent.contentType === contentType.Video" [value]="contentType.Video">Video</option>
    <option [selected]="selectedContent.contentType === contentType.Text"  [value]="contentType.Text">Txt</option>
    <option [selected]="selectedContent.contentType === contentType.HTML"  [value]="contentType.HTML">HTML</option>
  </select>

Кроме того, будьте осторожны с типами JavaScript, так как используется оператор идентификации.1 == "1" но 1 !== '1'.

...