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)"
코드의 가독성을 높일 수 있습니다.
ngEnabled
Angular에 지시문 이없는 이유 는 다소 의미 적입니다. HTML 사양에는 이에 해당하는 것이 없습니다. 동시에 속성 ngDisabled
과 함께 작동하는 지시문 이 이미 disabled
있습니다. 같은 이유로 설정 / 제거 속성 ngUnchecked
이 이미 있기 때문에 지시문 이 없습니다 .ngChecked
checked
이제, 합리적인 질문 : 왜 우리 모두가 ngShow
하고 ngHide
다음? 모두를 가지고 있기 때문에 글쎄요, 그냥 추측이 경우 편의를 위해입니다 ngShow
및 ngHide
보다 혼동하지 더 있습니다 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"
'IT TIP' 카테고리의 다른 글
Python에서 프록시로 Selenium Webdriver 실행 (0) | 2020.12.25 |
---|---|
관계형 데이터베이스가 Node.js에 적합하지 않습니까? (0) | 2020.12.25 |
decltype 동작의 근거는 무엇입니까? (0) | 2020.12.25 |
Android DeadSystemException (0) | 2020.12.25 |
사용자 에이전트 HTTP 헤더의 운영 체제 (0) | 2020.12.25 |