programing

Angular에서 버튼을 비활성화하려면 어떻게 해야 합니까?배열에 요소가 있는 경우 JS?

oldcodes 2023. 9. 21. 21:15
반응형

Angular에서 버튼을 비활성화하려면 어떻게 해야 합니까?배열에 요소가 있는 경우 JS?

나에게는 다음과 같은 목적이 있습니다.model.data

이 개체에 질문 배열이 있고 해당 배열에 두 개 이상의 요소가 있는 경우 버튼을 비활성화하려면 어떻게 해야 합니까?

노력했습니다.

data-ng-disabled="model.questions.length > 0"

하지만 이것은 전혀 효과가 없는 것 같습니다.

EDIT : 게시글댓글 대응 답변 수정

다음은?

data-ng-disabled="checkQuestions()"

그리고 당신의 콘트롤러에.

$scope.checkQuestions = function() {
 if (model.questions.length > 1) { // your question said "more than one element"
   return true;
  }
  else {
   return false;
  }
};

실제로 이 작업을 수행하는 데는 식, 함수, 경계 변수 등 여러 가지 방법이 있습니다(여기 있는 다양한 응답에서 볼 수 있음).아무 것도 작동하지 않으면 문제가 모델에 있을 수 있습니다.몇 가지 불일치 사항을 정리할 수 있다면(모델의 구조를 묻는 것에 대한 제 의견을 참조하십시오.또한 배열에 무언가가 있는 경우 또는 배열에 둘 이상의 것이 있는 경우에만 비활성화할 의향이 있습니까?) 이를 파악하는 데 도움이 될 것입니다.

여기 세 가지 접근법을 모두 보여주는 피들이 있습니다. 모두 작동하는 것을 볼 수 있을 것입니다.컨트롤러를 바이올린과 비교하여 함께 있는지 확인합니다.

http://jsfiddle.net/jlmcdonald/P8qjR/3/

당연히 함수 대신 표현을 사용할 수 있습니다.하지만 배열이 다음과 같은지 확인할 수 있습니다.undefined.

<button ng-disabled="model.questions != undefined && model.questions.length > 0"></button>

@zsong 답변을 작업할 수 없었고 array length만 반환하는 함수를 만들고 싶지 않아서 array.length를 반환하는 다른 스코프 변수를 생성하여 작업했습니다.

$scope.modelQuestionsLength = $scope.model.questions.length;

그러면 할 수 있습니다.

<button ng-disabled="modelQuestionsLength > 0"></button>

모형을 만든 다음 기본값을 false로 설정합니다.배열 길이가 비어 있지 않으면 값을 true로 변경합니다.이어서 모델을 단추의 ng-disabled 속성에 바인딩합니다.

저는 명확하지 않은 출근 방법을 찾을 수 없었습니다. 그래서 다른 사람이 문제를 겪고 있다면, 이 방법은 저에게 효과가 있었습니다.

<input ng-disabled="fieldsPermittedForEdit.indexOf('postDate') < 0">

이 예제에서 필드를 비활성화하는 경우는 필드를 비활성화합니다.postDate에 존재합니다.fieldsPermittedForEdit배열해 놓은

언급URL : https://stackoverflow.com/questions/18347797/how-can-i-disable-a-button-in-angularjs-if-there-are-elements-in-an-array

반응형