Тисячі способів шкіри цього кота. Я усвідомлюю, що ви питаєте про {{}} спеціально, але для інших, хто приходить сюди, я думаю, що варто показати деякі інші варіанти.
функція у вашому діапазоні $ (IMO, це найкраща ставка у більшості сценаріїв):
app.controller('MyCtrl', function($scope) {
$scope.foo = 1;
$scope.showSomething = function(input) {
return input == 1 ? 'Foo' : 'Bar';
};
});
<span>{{showSomething(foo)}}</span>
ng-show та ng-сховати звичайно:
<span ng-show="foo == 1">Foo</span><span ng-hide="foo == 1">Bar</span>
ngSwitch
<div ng-switch on="foo">
<span ng-switch-when="1">Foo</span>
<span ng-switch-when="2">Bar</span>
<span ng-switch-default>What?</span>
</div>
Спеціальний фільтр, як запропонував Бертран. (це ваш найкращий вибір, якщо вам доведеться робити те ж саме знову і знову)
app.filter('myFilter', function() {
return function(input) {
return input == 1 ? 'Foo' : 'Bar';
}
}
{{foo | myFilter}}
Або спеціальна директива:
app.directive('myDirective', function() {
return {
restrict: 'E',
replace: true,
link: function(scope, elem, attrs) {
scope.$watch(attrs.value, function(v) {
elem.text(v == 1 ? 'Foo': 'Bar');
});
}
};
});
<my-directive value="foo"></my-directive>
Особисто я в більшості випадків використовую функцію в моєму просторі, і це забезпечує розмітку досить чистою, і її швидко та просто реалізувати. Якщо тільки, тобто, ви будете робити те саме саме і знову і знову, і в такому випадку я б пішов із пропозицією Бертранда і створив фільтр чи, можливо, директиву, залежно від обставин.
Як завжди, найважливіше - це те, що ваше рішення просте у обслуговуванні , і, маємо надію, перевірити. І це буде повністю залежати від вашої конкретної ситуації.