我正在创建一个插件,手动启动我的角度应用程序并使用文档作为根。如果不使用指令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 = {...}。如果与答案相关,请向我解释一下。
答案 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---
}