Как связать имя класса из файла JSON с помощью Angular [ngClass] - PullRequest
1 голос
/ 25 марта 2019

У меня есть json-файл, который содержит иконки, например:

"icons" : {
        "logo" : "fa fa-caret-down",
        "search" : "fas fa-search",
        "bell" : "far fa-bell"
    }

В моем component.ts я могу получить этот объект значков, используя сервис успешно, как это:

navIcons: object;
   getNavIcons(): void {
    this.navbarService.getNavIcons()
    .subscribe(navIcons => {
      this.navIcons = navIcons;
      console.log(this.navIcons)
    //   icons : {
    //     logo : "fa fa-caret-down",
    //     search : "fas fa-search",
    //     bell : "far fa-bell"
    // }
    });
  }

Как я могу связать свой класс в шаблоне component.html? Я пытался так:

 <i id="logo" [ngClass]="['navIcons.logo']" class="nav-icon"></i>

но это не удалось. У меня также есть еще одна проблема: nav-icon нужно добавить в этот логотип? Спасибо заранее!

1 Ответ

1 голос
/ 25 марта 2019

Попробуйте этот ngClass синтаксис:

[ngClass]="navIcons?.logo"

Поскольку navIcons изначально undefined, используйте оператор безопасной навигации ?., чтобы исключить исключение при попытке доступа к свойству logo.

...