如何在没有指令的情况下将控制器附加到rootDocument?

时间:2014-01-28 18:04:41

标签: javascript angularjs

我正在创建一个插件,手动启动我的角度应用程序并使用文档作为根。如果不使用指令ng-controller,我怎样才能简单地将一个控制器连接到我的root上,以便它本身就像一个全局控制器?我会想到这样的事情:

var myCtrl = function($scope) {
    // Typical controller code
};

var app = angular.module('app',[]).
config(['$controlProvider',function($controlProvider)
{
    // Attaches the controller to the rootScope/ document
    $controlProvider.register('myCtrl',['$scope',myCtrl]);
}]);

angular.bootstrap(document,['app']);

答案中可能出现的一件事是提到$ scope.keys = {...}。如果与答案相关,请向我解释一下。

2 个答案:

答案 0 :(得分:1)

只是好奇为什么在这种情况下你会使用$provider? 只需将$rootScope分配给$scope块中控制器的run,如下所示: http://docs.angularjs.org/api/ng.$controller

var ctrl = function($scope) {
    $scope.HelloWorld = "Hello World";
};

var app = angular.module('app',[])
.run(['$rootScope', '$controller', function($rootScope, $controller){   
    var myCtrl = $controller(ctrl, {$scope: $rootScope});
}]);

angular.bootstrap(document,['app']);

http://jsfiddle.net/10thfloor/Zaeny/1/< - 工作小提琴。

答案 1 :(得分:0)

您可以创建一个全局控制器,并且该全局控制器未在任何模块中注册,因此它将具有根的范围。

function mycontroller($scope){
---Your controller code goes here---
}