我已经获得了以下代码示例,显然我再次缺少一些背景信息。
当我使用greet
指令时,控制器级别会发生绑定。由于某种原因,它将元素和元素的属性值绑定到相应的变量($attr
,$element
)。
是否有一个列表,其中包含控制器存在的所有现有绑定?
我做过一些研究,但无法在这方面做出任何事情。
angular.module('TodoApp.directives', []).
directive('greet', function () {
return {
template: '<h2>Greetings from {{from}} to {{to}}<h2>',
controller: function($scope, $element, $attrs) {
$scope.from = $attrs.from;
$scope.to = $attrs.greet;
}
};
});
....
<div greet="Test1" from="Test2"></div>
...
答案 0 :(得分:1)
这称为依赖注入。 Angular不是使用固定的参数列表,而是使用DI容器在需要时注入参数。例如,如果您需要$ http服务,只需将其添加为参数 - 参数的顺序无关紧要。
您可以注入的参数类型是常量,值,工厂,服务和提供程序。
Angular库中的一些“开箱即用”可用: Look here for Angular Providers and Services
其他人,您可以从第三方模块或自己开发的模块中获取。
答案 1 :(得分:1)
指令控制器有一些特殊的绑定。您可以在$compile
服务(here)的文档中找到它们,搜索&#34; controller&#34;。在此重复完整性:
控制器是可注射的(并支持括号表示法),具有以下本地:
$scope
- 与元素相关的当前范围$element
- 当前元素$attrs
- 元素的当前属性对象$transclude
- 预先绑定到正确的转换范围的转换链接函数。范围可以由可选的第一个参数覆盖。function([scope], cloneLinkingFn)
。