angularjs의 다른 컨트롤러에서 함수를 호출하는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
각도 js의 다른 컨트롤러에서 함수를 호출해야합니다. 어떻게 가능한지 미리 감사드립니다.
코드 :
app.controller('One', ['$scope',
function($scope) {
$scope.parentmethod = function() {
// task
}
}
]);
app.controller('two', ['$scope',
function($scope) {
$scope.childmethod = function() {
// Here i want to call parentmethod of One controller
}
}
]);
컨트롤러 간의 통신은 $emit
+ $on
/ $broadcast
+ $on
방법을 통해 이루어집니다 .
따라서 귀하의 경우 Controller "Two"내에서 Controller "One"의 메서드를 호출하려는 경우 올바른 방법은 다음과 같습니다.
app.controller('One', ['$scope', '$rootScope'
function($scope) {
$rootScope.$on("CallParentMethod", function(){
$scope.parentmethod();
});
$scope.parentmethod = function() {
// task
}
}
]);
app.controller('two', ['$scope', '$rootScope'
function($scope) {
$scope.childmethod = function() {
$rootScope.$emit("CallParentMethod", {});
}
}
]);
$rootScope.$emit
가 호출 되는 동안 모든 데이터를 두 번째 매개 변수로 보낼 수 있습니다.
한 컨트롤러에서 다른 컨트롤러로 기능을 사용하지 않을 것입니다. 더 나은 접근 방식은 공통 기능을 서비스로 이동 한 다음 두 컨트롤러 모두에 서비스를 삽입하는 것입니다.
경우 two
컨트롤러되고 중첩 에 One
컨트롤러.
그런 다음 간단히 호출 할 수 있습니다.
$scope.parentmethod();
것이다 각도 검색 을위한 parentmethod
기능은 현재 범위에서 시작하여 위로는 도달 할 때까지 rootScope
.
이벤트를 사용하여 데이터를 제공 할 수 있습니다. 다음과 같은 코드 :
app.controller('One', ['$scope', function ($scope) {
$scope.parentmethod=function(){
$scope.$emit('one', res);// res - your data
}
}]);
app.controller('two', ['$scope', function ($scope) {
$scope.$on('updateMiniBasket', function (event, data) {
...
});
}]);
두 컨트롤러간에 통신하는 가장 좋은 방법은 이벤트를 사용하는 것입니다.
범위 문서 참조
이에서 체크 아웃 $on
, $broadcast
하고 $emit
.
자식 컨트롤러 내에서 부모 컨트롤러의 parentmethod 함수를 실행하려면 다음을 호출하십시오.
$scope.$parent.parentmethod();
You can try it over here
ReferenceURL : https://stackoverflow.com/questions/29467339/how-to-call-a-function-from-another-controller-in-angularjs
'Programing' 카테고리의 다른 글
gvim의 메뉴 / 도구 모음을 숨기는 방법은 무엇입니까? (0) | 2021.01.05 |
---|---|
삼항 조건 연산자에서 선택 변수를 어떻게 사용합니까? (0) | 2021.01.05 |
webpack angular2 앱의 node_modules에서 CSS를 가져 오는 방법 (0) | 2021.01.05 |
작성자가 C ++에서 스택 및 힙을 설명하는 데 실수를 했습니까? 아니면 내가 뭔가를 잘못 읽었습니까? (0) | 2021.01.05 |
Ruby on Rails에서 프로그래밍 방식으로 네임 스페이스 / 모듈 이름을 어떻게 찾습니까? (0) | 2021.01.05 |