Как скрыть текст ярлыка, когда значение пусто?

В ячейке таблицы я перечисляю несколько элементов, которые заполняются с помощью ng-repeat, используя следующую структуру. Однако для некоторых записей свойства, такие как "user.favcolor", пусты. Какой самый простой способ скрыть текст, например "Любимый цвет:", в этом случае, чтобы я не закончил строку, которая имеет "Любимый цвет:", и нет значения рядом с ней?

        <table>
            <thead>
                <tr>
                    <th>Price</th>
                    <th>Plan Contents</th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="tip in tips">
                    <td>{{tip.priceMonthly}}</td>
                    <td><span>Name: {{user.name}}</span>
                        <span>ID: {{user.id}}</span>
                        <span>Favorite color: {{user.favcolor}}</span>
                    </td>
                </tr>
            </tbody>
        </table>

Ответ 1

Для этого можно использовать директиву ng-show:

<span ng-show="user.favcolor">Favorite color: {{user.favcolor}}</span>

ng-show работает так, что элемент отображается только в том случае, если выражение оценивается как true. Пустая строка здесь будет оценивать false, скрывая весь элемент.

В качестве альтернативы вы также можете указать значение по умолчанию:

<span>Favorite color: {{user.favcolor || "Not specified" }}</span>

В этом случае, если user.favcolor оценивается как false, он будет печатать Not specified.