programing

if 스테이트먼트(ng-click)

mailnote 2023. 3. 12. 11:01
반응형

if 스테이트먼트(ng-click)

ng클릭에 조건을 넣는 방법이 있나요?여기에서는 폼 에러가 있는 경우는 폼을 송신하지 말아 주세요만, 해석 예외가 발생했습니다.

 <input  ng-click="{{if(profileForm.$valid) updateMyProfile()}}" name="submit" id="submit" value="Save" class="submit" type="submit">

ng-disabled를 사용하려고 했지만 폼이 전혀 전송되지 않아 검증 플러그인이 작동하지 않아 트리거되지 않습니다.

템플릿에 조건식을 넣지 마십시오.

컨트롤러에서 실행합니다.

템플릿:

<input ng-click="check(profileForm.$valid)" name="submit" 
       id="submit" value="Save" class="submit" type="submit">

컨트롤러:

$scope.check = function(value) {
    if (value) {
       updateMyProfile();
    }
}

이것은 관련이 없을지도 모르지만, javascript이기 때문에 ng-click 스테이트먼트에서 제시한 3진법을 사용할 필요는 없습니다.또한 lazy evaluation("또는 die") 구문도 사용할 수 있어야 합니다.위의 예시는 다음과 같습니다.

<input  ng-click="{{if(profileForm.$valid) updateMyProfile()}}" name="submit" id="submit" value="Save" class="submit" type="submit">

다음과 같이 됩니다.

<input  ng-click="profileForm.$valid && updateMyProfile()" name="submit" id="submit" value="Save" class="submit" type="submit">

이 경우 프로파일이 유효하지 않으면 아무 일도 일어나지 않습니다.그렇지 않으면 update My Profile()이 호출됩니다.@falinsky가 제공하는 링크와 같습니다.

여기 내가 발견한 해킹이 너에게 효과가 있을 것 같아. 비록 예쁘지는 않지만, 개인적으로 그런 코드 라인을 사용하는 것은 창피할 거야.

ng-click="profileForm.$valid ? updateMyProfile() : alert('failed')"

지금, 당신은 '하지만 나는 그것이 경고하지 않기를 바란다.profileForm유효하지 않습니다.그게 바로 추악한 부분이죠저는 이 3진법의 다른 조항은 어떻게 넣어도 실행이 되지 않습니다.

그러나 제거되면 오류가 발생합니다.그러니까 그냥 무의미한 경고로 채워넣으면 되는 거죠.
내가 못생겼다고 했잖아이런 거 해도 잘 안 나와요.
첸쯔가 말한 대로, 그러나 각자의 것이 올바른 방법이다.

이렇게 해야 하는 경우 몇 가지 방법이 있습니다.

ng-disable로 버튼 비활성화

단연코 가장 쉬운 해결책입니다.

<input ng-disabled="!profileForm.$valid" ng-click="updateMyProfile()" ... >

ng-if로 버튼을 숨김(및 다른 것을 표시)

복잡한 마크업을 표시하거나 숨기면 됩니다.

<div ng-if="profileForm.$valid">
    <input ng-click="updateMyProfile()" ... >
</div>
<div ng-if="!profileForm.$valid">
    Sorry! We need all form fields properly filled out to continue.
</div>

(기억합니다.ng-else...)

둘 다 혼재

버튼이 있는 장소와 통신(더 이상 찾지 않음)하지만 클릭할 수 없는 이유를 설명합니다.

<input ng-disabled="!profileForm.$valid" ng-click="updateMyProfile()" ... >
<div ng-if="!profileForm.$valid">
    Sorry! We need all form fields properly filled out to continue.
</div>

http://php.quicoto.com/inline-ifelse-statement-ngclick-angularjs/,에서는 다음과 같은 작업을 수행할 수 있습니다.

ng-click="variable = (condition=='X' ? 'Y' : 'X')"

ng-click 이벤트는 디세이블클래스를 사용하지 않고 조건부로 추가할 수 있습니다.

HTML:

  <input ng-click="profileForm.$valid && updateMyProfile()" name="submit" id="submit" value="Save" class="submit" type="submit">

로 쓰다

<input type="submit" ng-click="profileForm.$valid==true?updateMyProfile():''" name="submit" value="Save" class="submit" id="submit">

태그 안에 조건을 넣을 수 있습니다.시험:

ng-class="{true:'active',false:'disable'}[list_status=='show']"

언급URL : https://stackoverflow.com/questions/21786492/if-statement-in-ng-click

반응형