IT TIP

angularjs에서 우리는 ng-disabled 지시문을 가지고 있는데, ng-show와 ng-hide를 가지고 있기 때문에 프레임 워크에서 ng-enabled 지시문을 제공하지 않는 이유

itqueen 2020. 12. 25. 10:39
반응형

angularjs에서 우리는 ng-disabled 지시문을 가지고 있는데, ng-show와 ng-hide를 가지고 있기 때문에 프레임 워크에서 ng-enabled 지시문을 제공하지 않는 이유


AngularJs ng-enabled지시문은 제공되지 않습니다. 우리는 목표를 달성하기 위해 사용할 수 ng-show있고 ng-hide언제 사용할 수 있기 때문에 프레임 워크에서 해당 지침을 제공하지 않는 적절한 이유가 있습니까?ng-hide

확인하는 것만으로는 좋지 않을 것입니다 ng-enabled="attribute.value === true"

대신에 ng-disabled="!(attribute.value === true)"

코드의 가독성을 높일 수 있습니다.


ngEnabledAngular에 지시문 이없는 이유 는 다소 의미 적입니다. HTML 사양에는 이에 해당하는 것이 없습니다. 동시에 속성 ngDisabled과 함께 작동하는 지시문 이 이미 disabled있습니다. 같은 이유로 설정 / 제거 속성 ngUnchecked이 이미 있기 때문에 지시문 이 없습니다 .ngCheckedchecked

이제, 합리적인 질문 : 왜 우리 모두가 ngShow하고 ngHide다음? 모두를 가지고 있기 때문에 글쎄요, 그냥 추측이 경우 편의를 위해입니다 ngShowngHide보다 혼동하지 더 있습니다 ngShow만, 그러나 동시에 그것은 모두가 매우 편리합니다.


나는 ng-enabled 지시문을 전혀 놓치고 있지 않으며 프레임 워크에 아무것도 추가하지 않을 것이라고 생각합니다.

입력은 기본적으로 활성화되어 있으며 HTML 입력에는 활성화 된 속성이없고 비활성화 된 것뿐입니다. 각도 지시문은 HTML 비활성화 속성을 설정하지만 표현식을 평가 한 후입니다.

그냥 쓸 수 있습니다

ng-disabled = "! attribute.value"

꽤 읽기 쉽다고 생각합니다.


TLDR : 대신 각도 지원을 사용하십시오 .

핵심 팀은 https://github.com/angular/angular.js/issues/1252#issuecomment-49261373에서 의견을 표현했습니다.

핵심 팽창을 무료로 유지하기 위해 +1이 많기 때문에 기능 요청을 따르지 않습니다.

그러나 여전히 ng 지원 기능을 원할 경우 btford는 사용자를 위해이 편리한 작은 모듈을 만들었습니다. https://github.com/btford/angular-enabled


Angular는 ng-disabled의 표현식 결과에 따라 disabled 속성을 설정합니다. HTML5에는 활성화 된 속성이 없으므로 ng-Enabled가 작동하지 않습니다.


이것이 질문에 대한 답이 아니라 자신의 지시문을 작성하려는 사람들을 위해 여기에 있습니다. BTW 그것은 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


이 라인은 나를 위해 일했습니다.

ng-disabled="!attribute.value"

참조 URL : https://stackoverflow.com/questions/30394447/in-angularjs-we-are-having-ng-disabled-directive-why-ng-enabled-directive-is-no

반응형