簡體   English   中英

生產中無法訪問角度控制器

[英]Angular controller not accessible in production

我有一個Symfony項目,並且絕大多數人都在多個環境中工作:使用Angular.js進行開發和生產。

目前,我有一個Angular控制器,可以在開發環境中訪問它,但不能在生產環境中訪問它,並拋出一條消息:“錯誤:[ng:areq]參數'xxxx'不是函數,未定義”。 我在多個線程中看到了后一個消息,但是沒有一個對我有幫助。

angular.module('MyApp').controller('MyController', function MyController($scope, MyMapper, _, moment, APP_URL, $location) {

$scope.APP_URL = APP_URL;
$scope.momentjs = moment;
$scope.isLoading = 1;
$scope.page = 1;
$scope.totalPagesNum = 1;
$scope.limit = 20;


// fill the table with data
MyMapper.find($location.search()).then(function(data) {

         // ... 
    })();
}).then(function() {
    $scope.isLoading = false;
});

});

如果要最小化代碼(這在生產中很常見),則將需要注釋依賴項,因為它們可能會被最小化腳本重命名。 為此,請對您的代碼使用以下模式:

angular.module('MyApp').controller('MyController', 
    ['$scope','MyMapper','_','momemt','APP_URL','$location',
        function($scope, MyMapper, _, moment, APP_URL, $location) {
            /* your code for the controller */
        }
    ]
);

請參閱https://docs.angularjs.org/guide/di了解更多信息,尤其是“ Dependency Annotation”部分和inline array notation子部分。

我認為這個問題已經解決了。

事實證明,vendors.js(vendros.min.js)的縮小版未在生產環境中正確加載。 因此,我必須在我的Gruntfile.js中指向正確的目錄。

其次,按照Brad的說明,我根據AngularJS在線指南重構了控制器。

謝謝大家參與。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM