Я хочу применить простую директиву условно, используя ngAttr. Я не понимаю, почему моя директива всегда отображается. Поэтому, если у меня есть переменная undefined/false, я хочу применить свою директиву: dirr.Как применять директиву условно в AngularJS?
При использовании ngAttr, в allOrNothing флага $ интерполирует используется, так что если любое выражение в интерполированных результатах строки в неопределенных, атрибут удаляется и не добавляется к элементу.
<div ng-app="myApp" ng-controller="MainController" class="container-fluid">
<h2 ng-bind="currentVersion"></h2>
<hr>
<div ng-attr-dirr="hidden || undefined">Default div</div>
</div>
angular.module('myApp',[])
.directive('dirr', function(){
return {
restrict:'AE',
template:'<div>Div from directive</div>'
}
})
.controller('MainController',['$scope', function($scope){
$scope.currentVersion = 'Angular 1.3.6';
$scope.hidden = undefined;
}])
;
FYI вы должны избегать имен собственных переменных, директивы и т. д. в пространстве имен 'ng' (' $ scope.ngVar'). Это для основных угловых компонентов и может вызвать путаницу для будущих разработчиков. – ste2425
@ ste2425 это быстрый пример, пожалуйста, по теме !! – que1326
Он говорит «FYI» как побочное примечание, а не «Я на тему»! –