我一直在构建一个 Web 项目,有时我会尝试发布并看到一切看起来都像在本地主机上所做的那样。这一次,我添加了 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 服务未正确“注入(inject)”,则可能会发生这种情况。如果是这样,请尝试像这样修改您的代码:
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 依赖于依赖注入(inject)。在开发模式下,参数 ($scope
, $http
) 具有相同的名称并且 AngularJS 注入(inject)依赖项(具有相同名称的服务)没有问题,但在缩小版本中在 JavaScript 文件中,参数的名称是随机更改的,因此您必须使用 currencyCtrl.$inject['$scope', '$http'];手动注入(inject)它们;
代码。
关于c# - AngularJs 脚本在部署后不起作用,它给出错误 [$injector :unpr],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639922/