Angular无法访问根范围

时间:2014-10-22 09:10:29

标签: angularjs

我正在尝试创建一个init函数,当我注册我的角度应用程序时:

//Register main app
var fertiliserCaculator = angular.module('fertiliserCalculator',['$rootScope',function($rootScope) {

 console.log($rootScope)
 }]);

这会返回$injector:modulerr,为主App名称空间定义控制器类型函数的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

你的语法错了。

  • 创建您的模块:

var fertiliserCaculator = angular.module('fertiliserCalculator', []);

  • 创建一个控制器:

fertiliserCaculator.controller('fertiliserCaculatorController', function($scope, $rootScope){ console.log($rootScope); $scope.foo = 'Yolo!'; });

  • 在简单的应用中使用您的控制器:

    <body ng-app="fertiliserCalculator"> <div ng-controller="fertiliserCaculatorController">{{$scope.foo}}</div> </body>

答案 1 :(得分:0)

尝试一下,运行函数是第一个被称为角度应用启动的运行时函数

//Register main app
var fertiliserCaculator = angular.module('fertiliserCalculator',[]);

fetiliserCalculator.run(['$rootScope',function($rootScope) {
  console.log($rootScope)
}]);

答案 2 :(得分:0)

根据文档guide/module,模块方法不是将函数作为第二个参数而是模块列表。

您必须在此模块中创建一个控制器(如guide/controller):

// declare a module
  var calculatorApp = angular.module('fertiliserCalculator', []);

  calculatorApp.filter('greet', function() {
   return function(name) {
      return 'Hello, ' + name + '!';
    };
  });

  calculatorApp.controller('fooCtrl', ['$scope',function($scope) {
     $scope.foo = 'youhou';
  }]);

不要忘记将ng-controller添加到你的HTML

  <div ng-controller="fooCtrl">
      {{ foo | greet }}
  </div>

我根据AngularJS doc

为你做了plunker