AngularJs的脚本在部署后不能工作,它给出错误[$injector:unpr]

本文关键字:错误 出错 injector unpr 脚本 部署 工作 不能 AngularJs | 更新日期: 2023-09-27 18:18:19

我一直在构建一个web项目,我不时地尝试发布,看到一切看起来像它在localhost。这一次,我添加了angularjs来获取/显示货币并再次部署项目。但是,它在浏览器中向用户显示{{货币}}。

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);
                })
});

我做错了什么?

AngularJs的脚本在部署后不能工作,它给出错误[$injector:unpr]

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

相关文章: