2016-08-06 42 views
0
(function() { 
    'use strict'; 

    function myController($scope, $http) { 
     var vm = this; 
     $scope.text = "Delhi"; 
    } 

    myController.$inject = ["$scope", "$http"]; 
    angular 
     .module("app") 
     .controller("myController", myController); 
})(); 

和我的HTML代碼這裏簡單扶養注射不工作

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <script src="angular.js"></script> 
    <script src="app.js"></script> 
</head> 
<body ng-app="app"> 
    <div ng-controller="myController"> 
     <p>I am from {{text}}</p> 
    </div> 
</body> 
</html> 

但我預期我的項目不能正常工作。給出以下錯誤

https://www.dropbox.com/s/itd5ryar56zqcxn/Screenshot%202016-08-06%2023.46.04.png?dl=0

angular.js:68 Uncaught Error: [$injector:nomod] Module 'app' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument. 
http://errors.angularjs.org/1.5.5/$injector/nomod?p0=app 
+0

是'app'模塊在另一個文件中聲明? – developer033

+0

不,這就是全部。請幫助解決。 –

+0

所以你必須像這樣聲明你的'app':'angular.module(「app」,[]);' – developer033

回答

0

沒有與代碼的幾個問題,

(i)您需要首先定義模塊,然後注入控制器

(ii)您忘了添加空模塊'[]'

(function() { 
    "use strict"; 
    angular 
     .module("app",[]) 
     .controller("myController", myController); 
    function myController($scope, $http) { 
     var vm = this; 
     $scope.text = "Delhi"; 
    } 
    myController.$inject = ["$scope", "$http"];  
}()); 

這裏是工作App

+0

我知道它可以正常工作,但我也看到很多控制器在沒有[]的情況下工作。 https://www.dropbox.com/s/bed9nwy5iacdvws/Screenshot%202016-08-07%2000.31.25.png?dl=0 –

+0

@GopalSharma是可能的,但是當你聲明一個模塊時,你需要定義依賴關係,甚至在你的例子中它應該已經被聲明在某個地方。閱讀更多http://stackoverflow.com/questions/19957280/angularjs-best-practices-for-module-declaration – Sajeetharan