Angular Directive(각도 지시)의 선택적 매개변수
나는 Angular에 대해 5개의 파라미터를 받는 지시문을 만들었고 그 중 하나는 옵션 배열입니다.제가 대처하려는 방법은 다음과 같습니다.
app.directive('fooDirective', function() {
return {
restrict: 'AE',
scope: {
param1: '=',
param2: '=' // optional array
},
template: //...
"<div ng-class='defineClass()'> Message </div>"
//...
controller: function($scope) {
if (typeof $scope.param2 === 'undefined')
$scope.param2 = [];
console.log($scope.param2);
$scope.defineClass = function() {
if ($scope.param2.length == 0) return 'gray-text';
return 'red-text';
};
// ......
}
}
});
내 코드의 어느 시점에서 나는 그것을 확인합니다..length
의param2
정의되지 않으면 많은 오류가 발생합니다.나를 미치게 하는 것은console.log()
당신은 출력 a를 볼 수 있습니다.[]
, 을 나타내는..length
내 param의 값은 0이어야 하며 콘솔의 오류는 console.log의 출력 뒤에 표시됩니다.
그래서 Angular가 스코프를 묶는 방식이나 명령이 구성되는 흐름에 대해 뭔가를 놓치고 있는 것 같습니다.두 가지 모두에서 내 매개 변수를 확인하려고 시도했습니다.link
그리고.compile
같은 문제가 발생했습니다.
그래서, 내가 뭘 놓치고 있는 거지?미리 감사드립니다.
각진 설명서(다음 항목 참조)scope
이중 direction 결합):
=
아니면=attr
- 로컬 범위 속성과 특성 특성 값을 통해 정의된 이름의 상위 범위 속성 간에 쌍 direction 바인딩 설정...상위 스코프 속성이 없으면 NON_ASSIGNABLE_MODEL_EXPRESSION 예외가 발생합니다.다음을 사용하여 이 동작을 방지할 수 있습니다.=?
아니면=?attr
선택사항으로 플래그를 지정합니다.
따라서 매개변수를 선택적으로 만드는 해결책은 결합을 선택적인 양방향 결합으로 변경하는 것입니다.?
.
...
scope: {
param1: '=',
param2: '=?' // notice the ? makes this parameter optional.
},
...
언급URL : https://stackoverflow.com/questions/31170508/optional-parameter-on-angular-directive
'code' 카테고리의 다른 글
XML 모범 사례: 특성 대 추가 요소 (0) | 2023.10.10 |
---|---|
프레임이 로드되었는지, 내용이 있는지 확인하는 방법은 무엇입니까? (0) | 2023.10.10 |
Date.getDay() javascript가 잘못된 날짜를 반환합니다. (0) | 2023.10.05 |
AWS 오로라:'지연된 전송/커밋 확인 완료' 프로세스 상태란? (0) | 2023.10.05 |
검색되지 않은 PDO 예외: PDO::__construct(): php_network_getaddresses: getaddrinfo 실패:이름 또는 서비스를 알 수 없습니다. (0) | 2023.10.05 |