반응형
AngularJS : 디렉티브에서의 최소화 문제
나는 아직 최소화에 대한 또 다른 문제가 있다.이번에는 명령어 컨트롤러에 $scope 서비스가 전달되었기 때문입니다.아래 코드 참조:
angular.module('person.directives').
directive("person", ['$dialog', function($dialog) {
return {
restrict: "E",
templateUrl: "person/views/person.html",
replace: true,
scope: {
myPerson: '='
},
controller: function ($scope)
{
$scope.test = 3;
}
}
}]);
컨트롤러 부분을 코멘트하면 정상적으로 동작합니다.
보시다시피 디렉티브에 어레이 선언을 사용했기 때문에 최소화된 후에도 $dialog 서비스는 Angular에 인식됩니다.하지만 컨트롤러의 $scope 서비스에 대해서는 어떻게 해야 하나요?
다음과 같이 컨트롤러를 선언해야 합니다.
controller: ['$scope', function ($scope)
{
$scope.test = 3;
}]
완전한 예는 다음과 같습니다.
angular.module('person.directives').
directive("person", ['$dialog', function($dialog) {
return {
restrict: "E",
templateUrl: "person/views/person.html",
replace: true,
scope: {
myPerson: '='
},
controller: ['$scope', function ($scope)
{
$scope.test = 3;
}]
}
}]);
@Sam이 제공하는 솔루션은 작동하지만, 이는 디렉티브의 컨트롤러를 애플리케이션 전체에 노출시키는 것을 의미하며, 이는 불필요합니다.
네, 컨트롤러는 다른 파일로 작성되었습니다.
angular.module('person.controllers').controller('personCtrl', ['$scope', function ($scope) {
$scope.test = 3;
}]);
그런 다음 명령어로 컨트롤러를 이름으로 할당합니다.
controller: 'personCtrl'
그게 최선의 방법인지 모르겠어.깨끗해 보이는데.당신은 어떻게 생각하나요?
언급URL : https://stackoverflow.com/questions/16055449/angularjs-minification-issue-in-directive
반응형
'programing' 카테고리의 다른 글
JSON에서 HAL(Hypertext Application Language)을 비활성화하시겠습니까? (0) | 2023.03.14 |
---|---|
Jackson을 사용하여 json으로 바이트 배열 보내기 (0) | 2023.03.14 |
PHP json_decode()에서 잘못된 json 데이터를 감지하시겠습니까? (0) | 2023.03.14 |
Ajax를 통한 체크아웃 시 Woocommerce 업데이트 배송 방법 (0) | 2023.03.14 |
Java에서 목록을 Json으로 변환하는 방법 (0) | 2023.03.09 |