Chcę to zrobić:
ng-hide="!globals.isAdmin && mapping.is_default"
ale wyrażenie zawsze ocenia false
.
Nie chcę definiować funkcji specjalnej $scope
.
Chcę to zrobić:
ng-hide="!globals.isAdmin && mapping.is_default"
ale wyrażenie zawsze ocenia false
.
Nie chcę definiować funkcji specjalnej $scope
.
Odpowiedzi:
Użyj metody kontrolera, jeśli chcesz uruchomić dowolny kod JavaScript lub możesz zdefiniować filtr, który zwróci wartość prawda lub fałsz.
Właśnie przetestowałem (powinienem to zrobić najpierw) i coś takiego ng-show="!a && b"
działało zgodnie z oczekiwaniami.
ng-show
/ ng-hide
akceptuje tylko boolean
wartości.
W przypadku złożonych wyrażeń dobrze jest użyć kontrolera i zakresu, aby uniknąć komplikacji.
Poniżej jeden będzie działał (To nie jest bardzo złożone wyrażenie)
ng-show="User=='admin' || User=='teacher'"
Tutaj element będzie wyświetlany w interfejsie użytkownika, gdy którykolwiek z dwóch warunków zwróci wartość true (operacja LUB).
W ten sposób możesz użyć dowolnych wyrażeń.
Działa to, jeśli nie masz zbyt wielu wyrażeń.
Przykład: ng-show="form.type === 'Limited Company' || form.type === 'Limited Partnership'"
Aby uzyskać więcej wyrażeń niż to, użyj kontrolera.
This will work if you do not have too many expressions.
chociaż zgadzam się, że powinno to być zrobione w kontrolerze.
Generalnie staram się unikać wyrażeń za pomocą ng-show i ng-hide, ponieważ zostały one zaprojektowane jako booleany, a nie warunkowe. Jeśli potrzebuję zarówno logiki warunkowej, jak i logicznej, wolę wprowadzić logikę warunkową, używając ng-if jako pierwszej kontroli, a następnie dodać dodatkowe sprawdzenie logiki logicznej za pomocą ng-show i ng-hide
Jednak jeśli chcesz użyć warunkowego dla ng-show lub ng-hide, oto link z kilkoma przykładami: Wyświetlanie warunkowe za pomocą ng-if, ng-show, ng-hide, ng-include, ng-switch
Niektóre z powyższych odpowiedzi nie działały dla mnie, ale tak się stało. Na wypadek, gdyby ktoś miał ten sam problem.
ng-show="column != 'vendorid' && column !='billingMonth'"
false
, możesz ponownie sprawdzić te wartości. Możliwe, że obiektami „globalnymi” i / lub „odwzorowującymi” sąundefined