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
'programing' 카테고리의 다른 글
대소문자를 구분하지 않는 XPath에 ()가 포함되어 있습니까? (0) | 2023.09.21 |
---|---|
안드로이드의위젯.스위치 켜기/끄기 이벤트 수신기? (0) | 2023.09.21 |
Knex.js는 sql injection을 방지합니까? (0) | 2023.09.21 |
Docker 가상 볼륨이 MariaDB 읽기/쓰기 작업에 충분히 빠릅니까? (0) | 2023.09.21 |
javascript: detect scroll end (0) | 2023.09.21 |