In Angularjs hebben we NG-gehandicapte richtlijn, waarom NG-ingeschakelde richtlijn niet wordt verstrekt door het raamwerk, omdat we NG-show en NG-Hide

In Angularjs ng-enabledRichtlijn is niet aanwezig. Is er een goede reden om die richtlijn niet in het kader te verstrekken, omdat we zowel ng-showen ng-hidegebruiken wanneer u gewoon wilt gebruiken ng-hideom 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 ngEnabledRichtlijn in hoek is nogal semantisch – er is gewoon niets overeenkomend in HTML-specificatie. Tegelijkertijd is er al ngDisabledRICHTRICHTING die werkt met disabledAttribuut. Om dezelfde reden is er geen ngUnchecked-richtlijn, omdat er al ngCheckedis ingesteld / verwijdert checkedATTIBUTE.

Nu, de redelijke vraag: waarom we beide ngShowen ngHidedan hebben? Nou, het is gewoon voor het gemak in dit geval dat ik denk, omdat ik beide ngShowen ngHideniet verwarrend is dan ngShowalleen, 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()
  ]

http://plnkr.co/edit/F4RG2v859oFtTumvgoGN?p=preview

Other episodes