Ответ 1
Должен использоваться так:
<button> {{ cond_vall == true ? 'Case 1' : 'Case 2' }}</button>
Что такое простой способ изменить текст в элементе кнопки на основе логического значения?
псевдокод:
<button> some text OR some other text </button>
Я читал это: Angularjs if-then-else конструкция в выражении
и это касается ng-switch: http://docs.angularjs.org/api/ng.directive:ngSwitch
Ни один из них не работает с использованием значения bool из модели
Должен использоваться так:
<button> {{ cond_vall == true ? 'Case 1' : 'Case 2' }}</button>
Я думаю, это зависит от того, что текст, который вы пытаетесь показать. Если у вас есть контроль над текстом в контроллере, вы можете привязать текст к переменной области видимости и установить его в контроллере, чтобы вам не приходилось вводить какую-либо логику в представление. Что-то вроде:
<button>{{someScopeVarWithYourString}}</button>
В противном случае вы можете использовать ng-if или ng-show в логическом состоянии.
<button ng-show="someBoolValue">some text</button>
<button ng-show="!someBoolValue">some other text</button>
Поскольку мне нужно было использовать фильтр (фильтр перевода) для текста кнопки, для меня лучше всего подойдет следующее решение:
<button>
<span> {{ condition ? 'some_text' : 'some_Other_text' | translate }}</span>
</button>
Не хватает репутации для редактирования или комментариев, добавлений к ответу @Tonio (который не работает для меня) Это правильно, если вы хотите перевести:
<button>
<span> {{ condition ? 'some_text' : 'some_Other_text' | translate }}</span>
</button>
<div ng-app="myModule">
<div ng-controller="myController">
{{message}} <br />
<button ng-click="changeMessage(message)">Change Message</button>
</div>
</div>
var module = angular.module("myModule", []);
module.controller("myController", function($scope) {
$scope.message = "Hello World";
$scope.changeMessage = function(value) {
if(value==="Hello World"){
$scope.message = "Hello Universe!";
}else{
$scope.message = "Hello World";
}
};
});