Как использовать NG-класс в соответствии с содержанием HTML - AngularJS

0

Я печатаю каждый элемент в моем массиве как абзац HTML, используя ng-repeat.

<p ng-repeat="item in queries track by $index">{{ item }}</p>

Результат:

------------ title 1 --------------
content 1
------------ title 2 --------------
content 2
------------ title 3 --------------
content 3
------------ title 4 --------------
content 4

Проблема в том, что я не могу понять, как настраиваемые абзацы стиля (например, color:red;).

  • 0
    вы можете установить свойство color для каждого запроса в вашем контроллере или директиве, а затем просто вызвать item.color
  • 0
    Я только что понял, что редактирование Александра Азизи удалило важную часть исходного вопроса - применение класса / стиля только тогда, когда элемент содержит слово «заголовок». Это значительно меняет ответ.
Теги:

3 ответа

2
Лучший ответ

вы добавляете атрибут ng-class

<p  ng-repeat="item in queries track by $index" 
              ng-class={someCustomClass: item.title} >{{ item }}</p>

если выше не работает, то это должно

<p  ng-repeat="item in queries track by $index" 
            ng-class={someCustomClass: Boolean(item.title) } >{{ item }}</p>

Если я ошибаюсь, идея состоит в том, чтобы предоставить объектный литерал для ng-класса, где ключ - это имя класса, а значение - это условие для применения класса

поэтому ng-class={ theClassNameToUse: TheCondition }

2

Если вы хотите использовать ng-class, вы можете использовать этот синтаксис:

ng-class="{'class-name': item.indexOf('title') >= 0}"

Или вы можете использовать ng-стиль следующим образом:

ng-style="setColor(item)"

С функцией:

$scope.setColor = function (item) {
    if (item.indexOf("title") >= 0) {
        return { color: red };
    }
}
  • 1
    спасибо @WonderGrub, ваше решение хорошо работает для меня.
1

Что-то вроде этого будет делать:

<p  ng-repeat="item in queries track by $index" 
    ng-attr-style="{{ item.indexOf('title') != -1 ? 'color: red' : '' }}">{{ item }}</p>
  • 0
    большое спасибо @Gevorg Harutyunyan ваше решение отлично работает, (у)
  • 0
    Добро пожаловать!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню