Desidero applicare una direttiva semplice in modo condizionale utilizzando ngAttr. Non capisco perché la mia direttiva sia sempre visualizzata. Quindi se ho una variabile indefinita/falsa voglio applicare la mia direttiva: dirr.Come applicare la direttiva in modo condizionale in AngularJS?
Quando si utilizza ngAttr, il allOrNothing bandiera $ interpolare viene utilizzato, quindi se qualsiasi espressione di una stringa interpolati in indefinito, l'attributo viene rimosso e non aggiunti all'elemento.
<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 si dovrebbe evitare di nominare le proprie variabili, direttive ecc. sotto lo spazio dei nomi 'ng' (' $ scope.ngVar'). Questo è per componenti angolari di base e potrebbe causare confusione per i futuri sviluppatori. – ste2425
@ ste2425 è un esempio veloce, si prega di essere in argomento !! – que1326
Dice "FYI" come nota a margine, non "I am on the topic"! –