2017-12-04 3 views
0

자식의 부모 컨트롤러에 함수의 결과를 보내려고합니다.

function validForm() { 
    var checkForm = false; 
    if(files === true) { 
    checkForm = true; 
    } 
    return checkForm; 
} 

나는 부모에게이 함수의 결과를 보낼 : 여기

내가처럼 보이는 기능이 calculate.controller.js에서 내 파일 구조

-submission.controller.js 
--calculate.controller.js 

입니다 (submission.controller.js)를 호출하고 함수에서 인수로 사용합니다.

showValidZip() { 
    if (validForm() === true) { 
    return false; 
    } 
    return true; 
}; 

지금까지 내가 $ 사용 방출 시도하고에 $는 복종하는 계산에서 validForm를 보낼 수 있지만 havent 한이 그렇게 많은 행운이 있었다. 예를 들어

:

$scope.$emit('validForm', function() { 
    var checkForm = false; 
    if(files === true) { 
    checkForm = true; 
    } 
    return checkForm; 
}); 

$scope.showValidZip = function() { 
    if ($scope.$on('validForm') === true) { 
    return false; 
    } 
    return true; 
}; 

하지만 의도 한대로 정말 작동하지 않습니다. 컨트롤러를 가정

+0

가능한 복제 [$ 범위 작업. $ 내고 범위 $.에 $ (https://stackoverflow.com/questions/14502006/working-with-scope-emit-and-scope-on) –

+0

파일 구조가 중요하지 않습니다. 컨트롤러의 사용 방법은 다음과 같습니다. '의도 한대로 작동하지 않습니다'라는 것이 정확히 무엇을 의미하는지 설명하고 문제를 재현 할 수있는 http://stackoverflow.com/help/mcve를 제공하십시오. – estus

+0

'$ rootscope'을 사용해야하고'emit'과'on' 구문을 반대로 사용해야합니다. –

답변

0

는 서로의 부모 - 자녀 방식으로 사용됩니다, 당신은 당신이 제공 한 코드를 사용하여 두 가지 문제가 있습니다

  1. $scope.$emit 다음 이벤트 이름 인수를 기대를 만약 그렇다면 당신 함수의 결과를 전달하려는 경우 별도의 함수를 호출하여 거기에서 호출 할 수 있습니다. $scope.$emit('validForm', myFunctionCall())
  2. 또한 $scope.$on은 아무 것도 반환하지 않으므로 이와 같이 사용할 수 없습니다. 당신이 $emit에서 보낸 값에 액세스하려면이 같은 리스너 함수 (두 번째 인자) 즉, 뭔가 내부에서 그 작업을 수행 할 수 있습니다

    $scope.$on('validForm', function(event, argument1) { 
        // argument1 is the same as return value of myFunctionCall() 
    }); 
    
0

'방출'을 아이에서.

$scope.$emit('validForm', function() { 
var checkForm = false; 
if(files === true) { 
checkForm = true; 
} 
return checkForm; 
}); 

수신 중입니다.

$scope.showValidZip = function() { 
$scope.$on('validForm'), function(event, data) { 
    if(data === true) 
    return false; 
}); 
return true; 
}; 
관련 문제