在Angular中,$controller有两个参数 - constructor和locals.
文档基本上只是说:
locals 是一个对象.但我仍然不明白它的作用.任何人都可以详细说明吗?
New*_*Dev 10
"Locals"允许您将注射剂定义到控制器中 - 即它定义了$injector可以仅为该控制器定位的对象(.factory例如,与可以定义的应用程序范围的注射剂相对).
最好的例子是一个例子:
var controller = $controller("Controller1", {
foo: {
v: "I am foo"
}
});
Run Code Online (Sandbox Code Playgroud)
然后,您的实际控制器可以注入foo:
.controller("Controller1", ["$scope", "foo", function($scope, foo){
$scope.fooVal = foo.v;
}]);
Run Code Online (Sandbox Code Playgroud)
您需要$controller在代码中直接使用这是一种非常罕见的情况(单元测试除外)- 这是一个奇怪的例子,您可以.然而,这通过ui-router和ng-route定义具有"已解决"值的状态/路由的控制器来使用.