Установить значение по умолчанию для 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'
.