In Angularjs ng-enabled
Richtlijn is niet aanwezig. Is er een goede reden om die richtlijn niet in het kader te verstrekken, omdat we zowel ng-show
en ng-hide
gebruiken wanneer u gewoon wilt gebruiken ng-hide
om ons doel te bereiken.
Het zou niet leuk zijn om te controleren
ng-enabled="attribute.value === true"
in plaats van
ng-disabled="!(attribute.value === true)"
Het verhoogt de leesbaarheid van de code.
Antwoord 1, Autoriteit 100%
De reden waarom er geen ngEnabled
Richtlijn in hoek is nogal semantisch – er is gewoon niets overeenkomend in HTML-specificatie. Tegelijkertijd is er al ngDisabled
RICHTRICHTING die werkt met disabled
Attribuut. Om dezelfde reden is er geen ngUnchecked
-richtlijn, omdat er al ngChecked
is ingesteld / verwijdert checked
ATTIBUTE.
Nu, de redelijke vraag: waarom we beide ngShow
en ngHide
dan hebben? Nou, het is gewoon voor het gemak in dit geval dat ik denk, omdat ik beide ngShow
en ngHide
niet verwarrend is dan ngShow
alleen, maar op hetzelfde Tijd is het erg handig om beide te hebben.
Antwoord 2, Autoriteit 21%
Ik mis helemaal geen NG-geactiveerde richtlijn en ik denk dat het weinig aan het raamwerk zou toevoegen.
Ingangen worden ingeschakeld door standaard- en HTML-ingangen hebben ook geen enabled attribuut, slechts een gehandicapte. De hoekrichtlijn stelt het kenmerk HTML gehandicapten in, maar na het evalueren van een uitdrukking.
U kunt gewoon
schrijven
NG-uitgeschakeld = “! Attribute.value”
Ik denk dat het behoorlijk leesbaar is.
Antwoord 3, Autoriteit 9%
TLDR: gebruik hoekig ingeschakeld .
Het Core Team heeft hun mening in dit commentaar uitgedrukt: HTPS: //github.com/angular/angular.js/issues/1252#Isuecomment-49261373
Ze zullen niet aan een functieverzoek houden, alleen omdat het veel + 1-S heeft om de kernbloemenvrij te houden.
Als u echter nog steeds NG-enabled-functionaliteit wilt hebben, heeft Btford deze handige kleine module alleen voor u gemaakt:
https://github.com/btford/angular-enabled
Antwoord 4, Autoriteit 7%
Angular Stelt het kenmerk gehandicapten in op basis van het resultaat van de uitdrukking in NG-uitgeschakeld. Er is geen enabled attribuut in HTML5, dus NG-ingeschakeld zou niet werken.
Antwoord 5, Autoriteit 3%
Deze regel werkte voor mij.
ng-disabled="!attribute.value"
Antwoord 6, Autoriteit 2%
Niet dat dit een antwoord is op de vraag waarom maar voor degenen die hun eigen richtlijn willen schrijven, ga je. BTW het is in coffeescript .
.directive 'ngEnabled', [
'$parse'
($parse)->
dir =
restrict: 'AC'
link: ($scope, elem, attrs)->
getter = $parse attrs.ngEnabled
$off = $scope.$watch ->
getter $scope
, (val)->
elem.attr 'disabled', !val
$scope.$on '$destroy', -> $off()
]