2015-10-19 102 views
0

我不知道爲什麼我收到這個錯誤。 我得到的錯誤是錯誤:[NG:AREQ]參數「PreviewController」不是一個函數,得到了不確定。 有人可以幫我解決這個問題嗎? 也就是有任何其他方式在控制器注入服務?錯誤:[NG:AREQ]參數「PreviewController」不是一個函數,得到了不確定

我的代碼如下:

(function() { 
    'use strict'; 
    angular 
     .module('MyModule') 
     .controller('PreviewController' ['$scope','Service1','Service2', 


    function($scope, $http) { 

    $http.get("https://api.myjson.com/bins/30e2a") 
    .success(function(response) { 
            //Dummy data taken from JSON file 
            $scope.firstName = response.firstName; 
            $scope.lastName = response.lastName; 
            $scope.dateAdded = response.dateAdded; 


           }); 

    //Functions have been defined. Functionality to be added. 

    $scope.cancelAndBack = function() { 
         window.history.back(); 
    }; 


}]); 

}()); 

回答

0

你正在定義你模塊不正確。

`angular.module('MyModule')` 

正在尋找一個名爲'MyModule'的已經初始化的模塊。 如果你是從頭開始創建模塊,您需要空數組。這將是更多的模塊依賴關係。

`angular.module('MyModule', [])` 

這是角度知道'創建應用程序'和'給我一個應用程序'之間的區別的方式。

最後服務。您使用的是angulars數組符號。這是你可以縮小你的JavaScript。

angularjs噴射系統的工作原理是名字,那就是它可以找到你需要的依賴關係,這也是爲什麼你可以在任何你喜歡的順序列出。然而縮小你的代碼會改變你的變量名稱,從而中斷角度的注入。

的解決方案是提供字符串告訴角度要注入的服務和他們在注射順序的數組。

所以傳遞到您的控制器功能的陣列值和屬性必須匹配。

正確:

.controller('test', ["$scope", "$http", "myService", function($scope, $http, myService){}]); 

錯誤:(myService將不會被定義爲從陣列丟失)

.controller('test', ["$scope", "$http", function($scope, $http, myService){}]); 
+0

其實我有 –

+0

是我不好,我發現這是別處定義的模塊我自己的錯誤...我錯過了一個逗號..對不起人們:| –

+0

也許應該提及?加載順序是什麼?編輯,好NP – ste2425

相關問題