programing

Angular JS의 사용자 정의 함수를 어디에 배치할 수 있습니까?

closeapi 2023. 2. 25. 20:58
반응형

Angular JS의 사용자 정의 함수를 어디에 배치할 수 있습니까?

제 견해로는 다음을 렌더링하고 싶습니다.

<p>
  {{ say() }}
</p>

어디에say는 다음과 같이 정의됩니다.

say = function() {
  return "Hello World";
}

컨트롤러에서 정의할 수 있습니다.

function TestCtrl($scope) {
  $scope.say = function() { ... };
}

하지만 컨트롤러 내에서만 액세스할 수 있습니다.

Angular 파일 구조 외부에 함수를 정의하면 아무것도 렌더링되지 않습니다.이 명령어를 정의해도 마찬가지입니다.controllers.js파일이 컨트롤러 기능 범위를 벗어납니다.

어떤 컨트롤러에서든 렌더링할 수 있도록 기능을 배치할 수 있는 적절한 장소는 어디입니까?

한 가지 방법은 여러 컨트롤러 간에 공유하는 기능을 사용하여 서비스를 작성하는 것입니다.상세한 것에 대하여는, 투고를 참조해 주세요.

그 후 작성한 서비스를 임의의 컨트롤러에 삽입하여say()다음과 같은 코드로 기능합니다.

function TestCtrl($scope, myService){
   $scope.say = myService.say;
}

정의한 장소myService다음과 같이 합니다.

angular.module('myApp', [])
    .factory('myService', function () {
        return {
            say: function () {
                return "Hello World";
            }
        }
    });

예를 들어 jsFiddle이 있습니다.

언급URL : https://stackoverflow.com/questions/12480400/where-to-put-user-defined-functions-in-angular-js

반응형