bestsource

Angular 내부의 기능JS 컨트롤러

bestsource 2023. 3. 25. 11:36
반응형

Angular 내부의 기능JS 컨트롤러

Angular Modular Controller가 있는 코드 스니펫이 있습니다만, 같은 컨트롤러의 내부와 콜에 기능이 있기 때문에 Javascript 또는 Angular에서 이러한 코딩이 가능한지 의문이 듭니다.'네'의 경우 어떻게 읽습니까?가지고 있는 아래의 코드 포맷을 참조해 주세요.

obj.controller('CartController',function($scope){

  $scope.totalCart = function(){
    var total = 10;     
    return total;
  }
  function calculate(){
    ...Some Logic..
  }

  $scope.$watch($scope.totalCart, calculate);
)};

이런 종류의 함수의 정의와 Angular/Javascript에서 허용된 컨트롤러 내에서 호출하는 것을 이해해주세요.

calculate()프라이빗 함수입니다.이것은, 다음의 범위내에서만 액세스 할 수 있습니다.CartController뷰에서 기능을 사용할 필요가 없다면 비공개로 하는 것이 좋습니다.뷰에서 사용하는 이 아니므로 다른 사용자가 이 코드를 사용하는 경우 뷰에서 사용하기 전에 다시 한 번 생각해 보아야 합니다.게다가 내부로부터의calculate액세스 가능한 모든 오브젝트에 액세스 할 수 있습니다.CartController(전송되는 오브젝트 포함)CartController(파라미터로 설정합니다.

이 방법으로 선언된 함수는 올바른 JS입니다.function즉, 이름으로 참조할 수 있습니다.함수를 미리 선언/작성하고 나서 다른 오브젝트의 속성에 할당하는 것이 읽기 쉽다고 생각되는 경우가 있습니다(이 경우).$scope):

function someFn (...) { ... }

function someOtherFn (...) { ... }

...

$scope.someFn = someFn

위 토막에서 의도는 매우 명확합니다.someFn액세스 가능, 보관 중someOtherFn사적인.

단, 다음과 같은 기능을 선언합니다.function nameFn(...){...}function 스테이트먼트라고 불리며, 다음과 같이 할 수 있습니다.var nameFn = function(...) {...}(이른바 함수식).이들 사이에는 약간의 차이가 있습니다.기본적으로 불법입니다.

 someFn();
 var someFn = function(...) {...}

단, 이 방법은 다음과 같습니다.

 someFn();
 function someFn(...) {...}

이 패턴을 사용하지 않을 수 없는 경우도 있습니다.예를 들어, 질문에 대한 제 답변을 봐 주세요.

$scope.launch = function (which) {

};
var _func = function () {...}

정의는 허용되며 다음과 같은 영향을 미칩니다.

$scope.$watch($scope.totalCart, function(){..some logic...})

언급URL : https://stackoverflow.com/questions/20654059/function-inside-the-angularjs-controller

반응형