2017-08-23 169 views
0

我使用angularjs + ionic設置我的項目。當我使用/ www目錄訪問時,項目運行正常,但是當我壓縮項目到/ dist目錄,並使用/ dist目錄訪問了以下頁面之一:#/ Mdetails/3023638,出現錯誤:

all.min.js:1錯誤:[$ injector:unpr]未知提供者:nProvider < - n

enter image description here

但訪問其他網頁這是正常的。我不知道這是否是因爲我指着多個路由到同一頁面

app.controller('MdetailsCtrl', ["$scope", "$timeout", "$state", "$sce", "$stateParams", "$ionicPopup", "HttpService", "GlobalParamService", function ($scope, $timeout, $state, $sce, $stateParams, $ionicPopup, HttpService, GlobalParamService) { 
 
    .... 
 
}])
.state('Mdetails', { 
 
     url: '/Mdetails/:id', 
 
     templateUrl: 'templates/merchant/details.html', 
 
     prefetchTemplate: false, 
 
     controller: 'MdetailsCtrl', 
 
     resolve: loadSequence('MdetailsArgs') 
 
    }) 
 
    .state('merchant', { 
 
     url: '/merchant/:id', 
 
     templateUrl: 'templates/merchant/details.html', 
 
     prefetchTemplate: false, 
 
     controller: 'MdetailsCtrl', 
 
     resolve: loadSequence('MdetailsArgs') 
 
    }) 
 
    .state('app/shops', { 
 
     url: '/app/shops/:id', 
 
     templateUrl: 'templates/merchant/details.html', 
 
     prefetchTemplate: false, 
 
     controller: 'MdetailsCtrl', 
 
     resolve: loadSequence('MdetailsArgs') 
 
    })

,當我強制錯誤的頁面刷新,檢查谷歌瀏覽的網段,需要加載的文件將被加載

回答

0

這意味着您缺少某個提供程序的相關文件。它也可能意味着它們不同步(順序)但是我認爲你的dist缺少一個js文件或者與你正在注入的提供程序有關的東西。如果你點擊控制檯中的鏈接,它會告訴你在哪個角度頁上它是哪一個..

+0

很高興你能解決它! –

+0

謝謝,我發現問題,在該頁面中,我使用了一個指令文件,在這個文件中,我寫了一個控制器,如下所示:controller:function($ scope){...}但是當文件被壓縮時,控制器的方法將如下所示:function(n){...},所以,「n」無法解析,我已將代碼更改爲:[「$ scope」,function($ scope){。 ..}],然後重新壓縮文件,沒有錯誤 – ECHO

+0

有一個偉大的插件修復了這些名爲ngAnnotate,你可以在grunt gulp中運行它。但是,最好的做法是按照您剛纔的方式編寫代碼。 –

相關問題