AngularJS에 대한 HotTowel 템플릿과 그 모든 "왜"질문이 내 마음에 들리는 지 살펴보기 시작합니다. 나는 그 중 일부를 지웠으나 이것을 지울 수 없었다. 나는. 컨트롤러에 대해 "즉시 호출 함수 표현식 (IIFE)"사용. 다음은 "shell.js"의 코드입니다.HotTowel Angular and Immediately-Invoked Function Expression (IIFE)
(function() {
'use strict';
var controllerId = 'shell';
angular.module('app').controller(controllerId,
['$rootScope', 'common', 'config', shell]);
function shell($rootScope, common, config) {
var vm = this;
//rest of the code omitted
여기서 IIFE가 사용되는 이유를 알 수 없습니다. 우리가 IIFE를 사용하지 않는 이유 중 하나는
var controllerId = "shell"
은 전체 범위가 맞을 수 있습니다. 나는 IIFE 스타일을 제거하려고 노력했으며 분명히 어떤 문제도 해결하려고 노력하고있다. 나는 AngularJS Style Guide을 거쳤지만 설명을 찾을 수 없습니다. 누군가이 접근 방식을 통해 얻을 수있는 이점을 설명해 줄 수 있습니까?
P. 이 질문에 대한 정확한 위치가 아니라고 생각되면 정확한 위치로 안내해주십시오.
이 대답에 대한 답변을 얻었습니까? –
그래서이 var controllerId = "shell"을 사용하지 않으면 IIFE가 필요하지 않습니까? 컨트롤러 ID를 선언하는 것 외에 IIFE가 컨트롤러 선언에서 더 좋은 다른 상황은 무엇입니까? – JenonD
좋아요, 다른 하나는 지시어 선언에서 본 것입니다. var app = angular.module ('app'); 앱에 대한 참조가 필요할 때 사용됩니다. IIFE를 사용하는 로컬 범위가 아니라면 app1, app2 ... 지시문/서비스에서 앱을 참조하는 12 개의 이름을 지정해야합니다. – JenonD