我一直在构建一个Web项目,有时我会尝试发布并看到一切看起来像在localhost中一样。这次,我添加了angularjs以获取/显示货币并再次部署了该项目。但是,它向浏览器中的用户显示{{currencies}}。
Error: [$injector:unpr] http://errors.angularjs.org/1.5.8/$injector/unpr?p0=nProvider%20%3C-%20n%20%3C-%20CurrencyController
我的angularjs代码看起来像这样…
app.controller("CurrencyController", function ($scope, $http) { $http.get('http://dummy.com/api/getcurrencyformainscreen'). success(function (data, status, headers, config) { $scope.currencies = data; }). error(function (data, status, headers, config) { //alert(data); }) });
我究竟做错了什么?
如果在部署项目时将JavaScript文件缩小并且AngularJS服务未正确“注入”,则可能会发生这种情况。如果是这样,请尝试按以下方式修改您的代码:
var currencyCtrl = function($scope, $http) { $http.get('http://dummy.com/api/getcurrencyformainscreen'). success(function(data, status, headers, config) { $scope.currencies = data; }). error(function(data, status, headers, config) { //alert(data); }) }; // inject dependencies properly for minification process currencyCtrl.$inject['$scope', '$http']; app.controller("CurrencyController", currencyCtrl);
这是因为AngularJS依赖于依赖项注入。在发展模式的参数($scope,$http)具有相同的名称和AngularJS内喷射没有问题的依赖(使用相同的名称服务),但在JavaScript文件的精缩版,参数的名称随机变化,所以你必须 注入 他们与currencyCtrl.$inject['$scope', '$http'];代码手动。
$scope
$http
currencyCtrl.$inject['$scope', '$http'];