반응형
AngularJS의 다른 컨트롤러에서 함수를 호출하려면 어떻게 해야 합니까?
AngularJS의 다른 컨트롤러에 있는 함수를 호출해야 합니다.이거 어떻게 해?
코드:
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
방법들.
따라서 컨트롤러 "2" 내의 컨트롤러 "1" 메서드를 호출하는 경우 올바른 방법은 다음과 같습니다.
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
호출됩니다.두 번째 파라미터로 임의의 데이터를 전송할 수 있습니다.
한 컨트롤러에서 다른 컨트롤러로 기능을 사용하지 않습니다.더 나은 접근법은 공통 기능을 서비스로 이동한 후 두 컨트롤러에 서비스를 주입하는 것입니다.
이벤트를 사용하여 데이터를 제공할 수 있습니다.이와 같은 코드:
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) {
...
});
}]);
이 경우,two
컨트롤러가 네스트되어 있다One
컨트롤러입니다.
다음으로 전화를 걸 수 있습니다.
$scope.parentmethod();
Angular는 다음을 검색합니다.parentmethod
현재 스코프에서 시작하여 에 도달할 때까지 기능합니다.rootScope
.
2개의 컨트롤러 간에 통신하는 최선의 방법은 이벤트를 사용하는 것입니다.
스코프의 메뉴얼을 참조해 주세요.
이 체크아웃에서는$on
,$broadcast
그리고.$emit
.
자녀 컨트롤러 내에서 부모 컨트롤러의 부모 메서드 기능을 실행하는 경우 다음과 같이 호출합니다.
$scope.$parent.parentmethod();
이쪽에서 드셔보세요
언급URL : https://stackoverflow.com/questions/29467339/how-to-call-a-function-from-another-controller-in-angularjs
반응형
'programing' 카테고리의 다른 글
Javascript로 로드된 iframe에서 HTTP 상태 코드 검색 (0) | 2023.03.02 |
---|---|
Wordpress 호스트 IP가 변경되었습니다. (0) | 2023.03.02 |
조건부로 "ui-sref"를 실행하는 방법은 무엇입니까? (0) | 2023.02.25 |
JSON 오브젝트에서는 값의 시퀀스가 중요합니까? (0) | 2023.02.25 |
SQL 개발자를 사용하여 자동 증가 열을 설정하는 방법 (0) | 2023.02.25 |