AngularJS注入后备

Jay*_*012 4 javascript angularjs

我有一种情况,有时我有本地人传入控制器,有时不.

我希望能够做的是,如果"locals"不可用,不抛出异常,而只是调用Controller并保留locals == null.

.controller('SomeCtrl', ['$scope', 'locals', function ($scope, locals) {
  if (!locals) // do something
  else // do something else
};
Run Code Online (Sandbox Code Playgroud)

在一种情况下,使用$ controller服务创建控制器.$ controller('SomeCtrl',{locals:'some locals');

但在其他情况下,我无法控制如何实例化控制器并且本地人不可用.我希望Angular像普通的javascript一样传递undefined ...

这不是很酷:

Error: Unknown provider: localsProvider <- locals
    at Error (<anonymous>)
    at http://localhost:1573/Scripts/angular.js:2832:15
    at Object.getService [as get] (http://localhost:1573/Scripts/angular.js:2960:39)
    at http://localhost:1573/Scripts/angular.js:2837:45
    at getService (http://localhost:1573/Scripts/angular.js:2960:39)
    at invoke (http://localhost:1573/Scripts/angular.js:2978:13)
    at Object.instantiate (http://localhost:1573/Scripts/angular.js:3012:23)
    at $get (http://localhost:1573/Scripts/angular.js:4981:24)
    at http://localhost:1573/Scripts/angular.js:4560:17
    at forEach (http://localhost:1573/Scripts/angular.js:137:20) 
Run Code Online (Sandbox Code Playgroud)

Jay*_*012 9

事实证明,您可以将"本地人"设置为未定义,如果可用,它将使用正确的本地人.

angular.module('module').value('locals', undefined)
Run Code Online (Sandbox Code Playgroud)