반응형
Angular: & 를 사용하여 다이렉트 링크 함수 내에서 컨트롤러 함수를 호출합니다.
디렉티브 링크 함수의 앰퍼샌드 '&'를 사용하여 디렉티브로 전달된 함수를 호출하는 데 문제가 발생했습니다.
함수가 컨트롤러로 호출된 것처럼 보이지만 콜에서는 인수가 전달되지 않습니다.지금까지 살펴본 모든 예에서는 Call in Template를 작성하여 패스스루를 실시합니다.템플릿에서 디렉티브의 함수를 호출하고 그 명령어로 전달된 컨트롤러 함수를 호출하는 방법이 있습니까?
당신은 안에서 인수를 전달하고 있습니까?{}
s? 예를 들어 디렉티브의 링크 함수 내에서 다음과 같이 메서드를 호출할 수 있습니다.scope.someCtrlFn({arg1: someValue});
<div my-directive callback-fn="ctrlFn(arg1)"></div>
app.directive('myDirective', function() {
return {
scope: { someCtrlFn: '&callbackFn' },
link: function(scope, element, attrs) {
scope.someCtrlFn({arg1: 22});
},
}
});
function MyCtrl($scope) {
$scope.ctrlFn = function(test) {
console.log(test);
}
}
마크의 대답에 더해서 지적하고 싶은 게 있는데, 편지 몇 통을 좀 쓸 수 있어요.&
속기이것은, 다음의 것을 전제로 하고 있습니다.callback-fn
HTML에서 참조되는 것은 다음과 같습니다.scope.callbackFn
를 참조해 주세요.다른 건 다 똑같아서 두 줄만 바꾸면 돼요.마크 버전을 댓글로 남겨놨기 때문에 차이를 쉽게 알 수 있을 거예요.
<div my-directive callback-fn="ctrlFn(arg1)"></div>
app.directive('myDirective', function() {
return {
scope: { callbackFn: '&' }, //scope: { someCtrlFn: '&callbackFn' },
link: function(scope, element, attrs) {
scope.callbackFn({arg1: 22}); //scope.someCtrlFn({arg1: 22});
},
}
});
function MyCtrl($scope) {
$scope.ctrlFn = function(test) {
console.log(test);
}
}
언급URL : https://stackoverflow.com/questions/16839259/angular-calling-controller-function-inside-a-directive-link-function-using
반응형
'bestsource' 카테고리의 다른 글
intellij - 스프링이 인식되지 않음(매핑되지 않은 스프링 구성) (0) | 2023.03.10 |
---|---|
Angular $http가 PUT/POST 대신 OPTIONS를 보내고 있습니다. (0) | 2023.03.10 |
Wordpress Core를 자체 스크립트에 포함 (0) | 2023.03.10 |
몽고DB에서 지수 방향이 중요한 이유는 무엇인가? (0) | 2023.03.10 |
FROM의 하위 쿼리에 별칭이 있어야 합니다. (0) | 2023.03.10 |