一尘不染

部署后AngularJs脚本不起作用,它给出错误[$ injector:unpr]

angularjs

我一直在构建一个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);
                })

});

我究竟做错了什么?


阅读 211

收藏
2020-07-04

共1个答案

一尘不染

如果在部署项目时将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'];代码手动。

2020-07-04