AngularJs脚本在部署后不起作用,它会出错
我一直在构建一个Web项目,我不时尝试发布,看看它在localhost中的样子。 这一次,我添加了angularjs来获取/显示货币并再次部署项目。 但是,它会向浏览器中的用户显示{{currency}}。
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依赖于dependency injection。 在开发模式下,参数( $scope
, $http
)具有相同的名称,AngularJS会毫无问题地注入依赖项(具有相同名称的服务),但在JavaScript文件的缩小版本中,参数的名称会随机更改,所以你必须用currencyCtrl.$inject['$scope', '$http'];
手动注入它们currencyCtrl.$inject['$scope', '$http'];
码。
- 为什么Selenium Firefox驱动程序会在父进程溢出时认为我的模态没有显示:隐藏?
- 升级到SignalR-2.0.0-beta2时未生成/ signalr / hubs
- AngularJS:如何获得系统远程?
- 从Razor(asp.net)迁移到Angular JS作为模板引擎
- 从服务中的JavaScript HTML调用WCF服务
- SPA – Firebase和.Net WebApi 2身份validation
- ASP.NET MVC和Angularjs一起+ ASP.NET Web API
- AngularJS – 哪个是好的WCF Rest或Web API
- 通过Angular进行基本身份validation,为什么抛出错误401