从控制器创建一个价值服务(module.value())

时间:2018-01-16 16:52:12

标签: angularjs

对不起,如果这是一个菜鸟问题:谁能告诉我,为什么会这样?

angular.module('myApp', []);

angular.module('myApp').value('someConst', 'some value');

angular.module('myApp')
  .directive('wdget', ["someConst"] // all OK here, value service injected OK
      , function (c) {
        console.log(c)
      }

而这不是:

angular.module('myApp', []);

angular.module('widgetModule', ['myApp'])
     .controller('widgetCtrl', function () 
     {
         angular.module('myApp').value('someConst', 'some value');
     }

angular.module('myApp')
  .directive('wdget', ["someConst"]  // throws: Error: $injector:unpr Unknown Provider
      , function (c) {
        console.log(c)
      }

在此代码段中,最后一行抛出:错误:$ injector:unpr未知提供商

基本上,不同之处在于我在不同模块的控制器中定义了值服务 someConst 。我这样做,因为我实际上是将值服务设置为此控制器中可用的值。

1 个答案:

答案 0 :(得分:0)

,您无法在控制器内声明模块。相反,您可以定义常量/值并在控制器内更改它。