Bu kediyi yüzmek için binlerce yol. {{}} Arasında özel olarak sorduğunuzun farkındayım, ancak buraya gelen diğerleri için, diğer seçeneklerden bazılarını göstermeye değer olduğunu düşünüyorum.
$ kapsamınızda (IMO, çoğu senaryoda en iyi bahsiniz):
app.controller('MyCtrl', function($scope) {
$scope.foo = 1;
$scope.showSomething = function(input) {
return input == 1 ? 'Foo' : 'Bar';
};
});
<span>{{showSomething(foo)}}</span>
ng-show ve ng-hide tabii ki:
<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>
Bertrand'ın önerdiği gibi özel bir filtre. (aynı şeyi tekrar tekrar yapmak zorundaysanız, bu en iyi seçimdir)
app.filter('myFilter', function() {
return function(input) {
return input == 1 ? 'Foo' : 'Bar';
}
}
{{foo | myFilter}}
Veya özel bir direktif:
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>
Şahsen, çoğu durumda kapsamımdaki bir işlevle giderdim, işaretlemeyi oldukça temiz tutar ve uygulanması hızlı ve kolaydır. Tabii, aynı şeyi tekrar tekrar yapacağınız sürece, bu durumda Bertrand'ın önerisiyle gidip koşullara bağlı olarak bir filtre veya muhtemelen bir yönerge oluşturacağım.
Her zaman olduğu gibi , en önemli şey çözümünüzün bakımı kolay ve umarım test edilebilir olmasıdır. Ve bu tamamen sizin özel durumunuza bağlı olacaktır.