다른 컨트롤러에 중첩 된 컨트롤러가 있습니다.
<div ng-controller="manufacturerController" ng-cloak>
<div ng-controller="contractController" ng-cloak>
<div data-ng-if="item" class="panel panel-default">
<div class="panel-heading text-center">
<span class="h3">Contract</span>
</div>
</div>
</div>
<button data-ng-if="item && !ajaxOut" class="btn btn-success" data-ng-click="saveItem()">Save</button>
</div>
saveItem ()은 버튼을 통해 호출되고 코드는 manufacturerController에 있습니다.
$scope.saveItem = function () {
$scope.ajaxOut = true;
$scope.saveContracts();
};
그러나 saveContracts () 함수는 contractController에 있습니다. manufacturerController.saveItem ()에서 contractController.saveContracts ()를 호출하고 싶습니다.
여기에 따르면 부모 메서드를 잘 호출 할 수 있어야합니다. angularjs의 다른 컨트롤러에서 함수를 호출하는 방법은 무엇입니까?
그러나 저장은 브라우저를 정지시킵니다. 내가 뭘 잘못하고 있고 어떻게 고치나요?
한 가지 방법은 범위에서 이벤트를 브로드 캐스팅하는 것입니다.
function ParentController($scope)
{
$scope.$broadcast('someEvent', args);
}
function ChildController($scope)
{
$scope.$on('someEvent', function(event, args) {});
// another controller or even directive
}
범위 이벤트 전파
범위는 DOM 이벤트와 유사한 방식으로 이벤트를 전파 할 수 있습니다. 이벤트는 범위 하위에 브로드 캐스트 되거나 범위 상위에 방출 될 수 있습니다 .
자세한 내용은 한 컨트롤러가 다른 컨트롤러를 호출 할 수 있습니까?를 참조하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다