Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-控制器中的参数绑定_Javascript_Html_Angularjs_Visual Studio 2013_Angularjs Directive - Fatal编程技术网

Javascript AngularJS-控制器中的参数绑定

Javascript AngularJS-控制器中的参数绑定,javascript,html,angularjs,visual-studio-2013,angularjs-directive,Javascript,Html,Angularjs,Visual Studio 2013,Angularjs Directive,我有下面的代码示例,显然我再次缺少一些背景信息 当我使用greet指令时,在控制器级别上发生绑定。出于某种原因,它将元素和元素的属性值绑定到相应的变量($attr,$element) 是否有一个包含控制器所有现有绑定的列表 我做了一些研究,但在这个方向上找不到任何东西 指令.js angular.module('TodoApp.directives',[])。 指令('greet',函数(){ 返回{ 模板:“从{{from}}到{{to}}的问候语”, 控制器:函数($scope、$eleme

我有下面的代码示例,显然我再次缺少一些背景信息

当我使用
greet
指令时,在控制器级别上发生绑定。出于某种原因,它将元素和元素的属性值绑定到相应的变量(
$attr
$element

是否有一个包含控制器所有现有绑定的列表

我做了一些研究,但在这个方向上找不到任何东西

指令.js
angular.module('TodoApp.directives',[])。
指令('greet',函数(){
返回{
模板:“从{{from}}到{{to}}的问候语”,
控制器:函数($scope、$element、$attrs){
$scope.from=$attrs.from;
$scope.to=$attrs.greet;
}
};
});
list.html
。。。。
...
这称为依赖项注入。Angular没有固定的参数列表,而是在需要时使用DI容器注入参数。例如,如果您需要$http服务,只需将其添加为参数—参数的顺序并不重要

可以注入的参数类型包括常量、值、工厂、服务和提供程序

您可以从Angular library“开箱即用”中获得一些:


其他的,您可以从第三方模块或您自己开发的模块获得。

指令控制器有一些特殊的绑定。您可以在
$compile
服务()的文档中找到它们,搜索“controller”。为完整起见,请在此重复:

控制器是可注入的(并支持括号表示法),具有以下局部变量:

  • $scope
    -与元素关联的当前范围
  • $element
    -当前元素
  • $attrs
    -元素的当前属性对象
  • $transclude
    -预先绑定到正确转换范围的转换链接功能。范围可以由可选的第一个参数覆盖<代码>功能([范围],克隆链接fn)
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>
...