AngularJS錯誤筆記
2014-10-30 10:18:01

Error: error:unpr Unknown Provider

原因

1. 最常出現在uglify之後的js檔,也就是原本都沒錯誤,但一uglify之後就出現問題了。主要的原因是dependence injection必須靠變數名稱來示別,而uglify的動作會將變數名稱改掉,就會出現這個錯誤。

2. 另外就是官方網站提出來的幾種錯誤。

解法

1. 使用明確的宣告方式,也就是:

angular.module('MyApp').controller('MyController', function (MyService) {
  // Do something with MyService
});

要改成

angular.module('MyApp').controller('MyController', ['MyService', function (MyService) {
  // Do something with MyService
}]);

特別注意的是,除了controller, directive, service之外,directive內的controller也要改成正確的宣告方式(這很容易漏掉)。

2. 參見官網解法。