반응형
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
반응형
'programing' 카테고리의 다른 글
Oracle ODP.net Managed 드라이버와 Unmanaged 드라이버 (0) | 2023.02.25 |
---|---|
PL/SQL 및 SQL에서 VARCHAR2의 최대 크기는 얼마입니까? (0) | 2023.02.25 |
Google Analytics에 의하면, 제 방문자의 대부분은 social-buttons.com입니다.이 방문자들은 내 사이트를 어떻게 찾나요? (0) | 2023.02.25 |
어떻게 하면 $http로 결과를 조롱할 수 있을까요?내 Angular 테스트에서 약속을 얻습니다.JS 컨트롤러? (0) | 2023.02.25 |
기능 컴포넌트를 "순수"로 선언합니다. (0) | 2023.02.25 |