programing

angularjs에서는 ng-disabled 디렉티브가 있는데, 왜 ng-enabled 디렉티브는 ng-show와 ng-hide가 있는데 프레임워크에서 제공되지 않는가?

oldcodes 2023. 3. 5. 10:25
반응형

angularjs에서는 ng-disabled 디렉티브가 있는데, 왜 ng-enabled 디렉티브는 ng-show와 ng-hide가 있는데 프레임워크에서 제공되지 않는가?

AngularJs의 경우ng-enabled디렉티브가 제공되지 않습니다.프레임워크에서 그 지시를 제공하지 않을 이유가 있나요? 왜냐하면 우리는 두 가지 모두를 가지고 있기 때문입니다.ng-show그리고.ng-hide사용할 수 있을 때ng-hide우리의 목표를 이루기 위해.

확인만 해도 좋을 것 같지 않다.

대신

코드의 가독성이 높아집니다.

없는 이유ngEnabledAngular의 디렉티브는 의미론적인 것입니다.HTML 사양에는 대응하는 것이 없습니다.동시에 이미 있다ngDisabled와 연동되는 지시disabled기여하다.같은 이유로, 없다.ngUnchecked디렉티브는 이미 존재하기 때문에ngChecked설정/설정checked기여하다.

이제, 합리적인 질문은, 왜 우리 둘 다ngShow그리고.ngHide그럼요? 이 경우엔 편의상 그런 것 같네요, 왜냐면 둘 다ngShow그리고.ngHide보다도 혼란스럽지 않다ngShow둘 다 있으면 편리합니다.

저는 ng 대응 디렉티브를 전혀 놓치고 있지 않으며 프레임워크에 거의 아무것도 추가되지 않을 것이라고 생각합니다.

입력은 디폴트로 유효하게 되어 있습니다.HTML 입력에도 유효 Atribute는 없고, 무효로 되어 있을 뿐입니다.angular 디렉티브는 식을 평가한 후 HTML이 비활성화된 속성을 설정합니다.

그냥 쓰시면 돼요.

ng-disabled="!disabled.value"

나는 그것이 꽤 읽을 만하다고 생각한다.

TLDR: 대신 각도 대응 기능을 사용합니다.

핵심 팀은 이 코멘트로 의견을 표명했습니다.https://github.com/angular/angular.js/issues/1252#issuecomment-49261373

코어 블러트를 방지하기 위해 기능 요구를 +1-s가 많다는 이유만으로 수용하지 않습니다.

단, ng 대응 기능을 계속 사용하고 싶다면 btford는 다음과 같은 편리한 모듈을 만들었습니다.https://github.com/btford/angular-enabled

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

이 대사는 나에게 통했다.

ng-disabled="!attribute.value"

'왜?'라는 질문에 대한 답변이 아니라 직접 지시문을 작성하고자 하는 분들을 위해, 여기 있습니다.그나저나 커피스크립트로 써있네요.

.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

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

반응형