$ controller的“locals”参数有什么作用?

时间:2015-07-06 16:40:33

标签: angularjs

在Angular中,$controller有两个参数 - constructorlocals

Documentation

文档基本上只是说:

  1. locals是一个对象。
  2. “Controller的本地注册。”
  3. 但我仍然不明白它的作用。任何人都可以详细说明吗?

1 个答案:

答案 0 :(得分:9)

"当地人"允许您将注入定义到控制器中 - 即它定义了$injector只能为该控制器定位的对象(例如,与可以使用.factory定义的应用程序范围的注入相对)。 / p>

最好的例子是一个例子:

var controller = $controller("Controller1", {
   foo: {
     v: "I am foo"
   }
});

然后,您的实际控制器可以注入foo

.controller("Controller1", ["$scope", "foo", function($scope, foo){
   $scope.fooVal = foo.v;
}]);

这是一个非常罕见的情况(单元测试除外),您需要在代码中直接使用$controller - 这里是一个奇怪的example where you can。但是,ui-routerng-route使用了$id = ?; // id $selectqup = $db->prepare("SELECT emp_id, emp_name, emp_salary FROM employee WHERE emp_id=:THEID LIMIT 1"); $selectqup->bindValue(':THEID',$id,PDO::PARAM_INT); $selectqup->execute(); $ct = $selectqup->rowCount(); while($row = $selectqup->fetch(PDO::FETCH_ASSOC)){ $emp_id = $row['emp_id']; $emp_name = $row['emp_name']; $emp_salary = $row['emp_salary']; } 来定义状态/路由的控制器。