1

我正在开发一个 Angular 项目,它在本地运行完美,但是当我部署到 Divshot 时它会中断,并且会引发“未知提供者:iProvider <- i”错误。

这是链接到:Divshot 开发构建

任何建议将不胜感激。

4

2 回答 2

3

这是因为 Angular 通过将函数字面意思转换为字符串并使用其参数名称来解析提供程序名称。部署时,您可能正在缩小代码。因此,看起来像的东西myCoolService将被缩小为iora或其他东西。

你必须有办法解决它: 1. 使用数组语法 2. 在你的构建中使用 ngAnnotate 或其他东西来为你创建数组语法。

在https://docs.angularjs.org/tutorial/step_05上阅读有关缩小的部分

于 2015-09-25T22:53:17.480 回答
1

我假设您的 js 代码已在生产中最小化。您的服务提供商的标识符可能被重命名为未知的东西。

我建议您在注入点添加您的提供者的字符串标识符。例如

angular.module('example')
  .controller(['$scope', 'YourServiceProvider', function($scope, YourServiceProvider) {
     // ...
  });
于 2015-09-26T02:48:16.437 回答