2016-11-16 57 views
1

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

}); 

我在做什么错?

+0

错误是告诉你CurrencyController未找到。可能出于多种原因。包含控制器的js文件是否包含在您的html中? FYI,处理$ http承诺与.success()/。错误()已被弃用,有利于.then() – jbrown

+0

但它可以找到当我在本地运行 –

回答

3

如果部署项目JS文件被缩小,可能会发生这种情况。如果是这样,请尝试修改您的代码,如下所示:

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

}; 

currencyCtrl.$inject['$scope', '$http']; 

app.controller("CurrencyController", currencyCtrl); 

这是因为角依赖于依赖注入。在开发模式下,参数($ scope,$ http)具有相同的名称和角度注入依赖关系,没有问题,但在js文件的缩小版本中,参数的名称随机更改,因此您必须“注入”它们手动与currencyCtrl.$inject['$scope', '$http'];

相关问题