이 고양이를 피부에 바르는 수천 가지 방법. 귀하가 {{}} 사이에서 특별히 요구하는 것을 알고 있지만 여기에 오는 다른 사람들에게는 다른 옵션 중 일부를 보여줄 가치가 있다고 생각합니다.
$ scope에서 기능 (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-hide :
<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가 제안한 맞춤형 필터. (이것은 당신이 똑같은 일을 계속해야한다면 가장 좋은 선택입니다)
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>
개인적으로 대부분의 경우 내 범위에서 함수를 사용하여 마크 업을 깔끔하게 유지하고 빠르고 쉽게 구현할 수 있습니다. 그렇지 않으면, 당신은 똑같은 일을 반복해서 반복하게 될 것입니다.이 경우 Bertrand의 제안에 따라 상황에 따라 필터 또는 지시어를 만들 것입니다.
항상 그렇듯이 가장 중요한 것은 솔루션을 유지 관리하기 쉽고 테스트 할 수 있다는 것입니다. 그리고 그것은 당신의 특정한 상황에 전적으로 달려 있습니다.