Установить значение по умолчанию для ng-bind в HTML

Я хотел бы установить значение по умолчанию для области, которое подхвачено ng-bind. Я делаю это так:

<button>Show <span data-ng-bind="data.text" data-ng-init="data.text = 'All';"></span> Names</button>

В этом примере диапазон устанавливается на innerHTML= 'All', когда страница загружается.

Однако я надеялся, что может быть способ сделать это, не требуя использования ng-init, возможно, что-то вроде:

<button>Show <span data-ng-bind="data.text = 'All';"></span> Names</button>

Ответы

Ответ 1

В вашем контроллере:

$scope.data = {};
$scope.data.text = "All";

Ваша разметка:

<button>Show <span data-ng-bind="data.text"></span> Names</button>

Или, если вы хотите пропустить код контроллера (любезно предоставленный комментарием Kohjah Breese):

    <button>Show <span data-ng-bind="data.text || 'All'"></span> Names</button>

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

EDIT: альтернативно, поскольку tymeJV указывает в комментариях (добавлен ng-cloak, поэтому синтаксис {{}} не отображается пользователям):

<button>Show <span ng-cloak>{{data.text || "All"}}</span> Names</button>

Ответ 2

из angularjs doc:

Единственное подходящее использование ngInit - для сглаживания специальных свойств ngRepeat [...] Кроме этого случая, вы должны использовать контроллеры, а не ngInit, чтобы инициализировать значения в области.

Итак, я предполагаю, что инициализация data.text в вашем контроллере отлично подходит для angularjs

Ответ 3

Оператор || работает также в ngBind как в чистом JavaScript:

<span ng-bind="myVariable || 'My default value'"></span>

Это выдает myVariable, если переменная заполнена, в противном случае используется альтернатива 'My default value'.