2014-11-10 2 views
0

저는 angular.js를 처음 사용 했으므로 angular.js 1.3.2를 사용하여 작은 응용 프로그램을 개발하려고했습니다. 나는이 오류를 이해하지 못하고있다. 이 오류가 발생하는 이유는 무엇입니까? index.html을

<!DOCTYPE html> 
    <html ng-app='store'> 
    <body>  
     <script type="text/javascript" src="angular.min.js"> 
     </script>    
     <script type="text/javascript" src="app.js"> 
     </script>  
     <div ng-controller="StoreController"> 
     <h1> 
      {{StoreController.product.title}} 
     </h1> 
     </div> 
    </body> 
    </html> 

당신이보기에 묶여 $ 범위 변수를 필요가 없습니다

(function(){ 
    var app = angular.module('store', []); 
    app.controller('StoreController', function(){ 
    this.product = gem; 
    }); 
    var gem = { 
    title: "hello", 
    description: "nnothing gr8" 
    } 
}); 
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.2/$injector/modulerr?p0=store&p1=Error%3A%2…F%2Fhome%2Fnaveed%2FDocuments%2Fwork%2Fangular%2Fangular.min.js%3A17%3A381) angular.js:4020
+1

는 app.js에 익명 함수를 호출하는 것을 잊었다 :

<h1> {{product.title}} </h1> 

그래서 당신이 일 작업 얻을 $ 범위를 주입 할 필요가'(기능 {...}()); ' –

+0

나는 그것이 (function() {})()라고 생각한다; –

+0

모두 작동하지만 D. Crockford는이 스타일을 권장합니다 (http://javascript.crockford.com/code.html 참조). –

답변

1

을 app.js?

(function(){ 
    var app = angular.module('store', []); 
    app.controller('StoreController', function($scope){ 
     var gem = { 
      title: "hello", 
      description: "nnothing gr8" 
     } 
     $scope.product = gem; 
    }); 

})(); // your function needs to be run 
+0

실제로 마지막에 대괄호를 추가하기 전에. 오류가 표시되지만 결과가 표시되지 않습니다.로드 된 HTML 페이지가 비어 있습니다. –

+0

$ scope도 시도했지만 여전히 결과는 같습니다 .... 빈 html 페이지 –

+1

안녕 엘리트 .... 그 $ scope를 쓰는 것은 필수가 아닙니다 ... https://docs.angularjs.org/guide/concepts –

0
(function(){ 
var app = angular.module('store',[]); 

app.controller('StoreController', ['$scope', function($scope) { 
$scope.product = gem; 
}]); 

var gem={ 
    title: "hello", 
    description: "nothing gr8" 
} 
})(); 
관련 문제