Angular: переключить текст кнопки на основе логического значения в модели

Что такое простой способ изменить текст в элементе кнопки на основе логического значения?

псевдокод:

<button> some text OR some other text </button>

Я читал это: Angularjs if-then-else конструкция в выражении

и это касается ng-switch: http://docs.angularjs.org/api/ng.directive:ngSwitch

Ни один из них не работает с использованием значения bool из модели

Ответы

Ответ 1

Должен использоваться так:

<button> {{ cond_vall == true ? 'Case 1' : 'Case 2' }}</button>

Ответ 2

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

<button>{{someScopeVarWithYourString}}</button>

В противном случае вы можете использовать ng-if или ng-show в логическом состоянии.

<button ng-show="someBoolValue">some text</button>
<button ng-show="!someBoolValue">some other text</button>

Ответ 3

Поскольку мне нужно было использовать фильтр (фильтр перевода) для текста кнопки, для меня лучше всего подойдет следующее решение:

<button>
    <span> {{ condition ? 'some_text' : 'some_Other_text' | translate }}</span>
</button>

Ответ 4

Не хватает репутации для редактирования или комментариев, добавлений к ответу @Tonio (который не работает для меня) Это правильно, если вы хотите перевести:

<button>
    <span> {{ condition ? 'some_text' : 'some_Other_text' | translate }}</span>
</button>

Ответ 5

<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";
  }

  };
});