Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 作用域中的角度指令访问值_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 作用域中的角度指令访问值

Javascript 作用域中的角度指令访问值,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,如何读取范围中的info属性之类的指令值 <div ng-controller="Controller"> <my-customer info="naomi"></my-customer> <hr> <my-customer info="igor"></my-customer> </div> 您可以在上找到它,或在“角度”中找到类似的属性。要将控制器与指令关联,可以使用指令定义对象的控制器属性。将控

如何读取范围中的info属性之类的指令值

<div ng-controller="Controller">
  <my-customer info="naomi"></my-customer>
  <hr>
  <my-customer info="igor"></my-customer>
</div>

您可以在上找到它,或在“角度”中找到类似的属性。

要将控制器与指令关联,可以使用指令定义对象的
控制器属性。将控制器指定为函数或指定控制器的名称

角度应用程序

angular.module('docsIsolateScopeDirective', [])
  .controller('Controller', ['$scope', '$attrs', function($scope, $attrs) {
    $scope.naomi = { name: 'Naomi', address: '1600 Amphitheatre' };
    $scope.igor = { name: 'Igor', address: '123 Somewhere' };
    //Here are the attrs values
    console.log($attrs.stars);
    console.log($attrs.info);
  }])
  .directive('myCustomer', function() {
    return {
      restrict: 'E',
      scope: {
            starts: '=stars',
            info: '=info'
      },
      //Associate a controller
      controller: 'Controller',
      template: "Name: {{customerInfo.name}} Address: {{customerInfo.address}}"
    };
  });
HTML

<div ng-controller="Controller">
  <my-customer info="naomi" stars="star1"></my-customer>
  <hr>
  <my-customer info="igor" stars="star2"></my-customer>
</div>

示例-示例指令隔离生产

顾名思义,是孤立的,这就是为什么可以使用双向绑定的原因-就像您的“e”处理
customerInfo:'=info'

当您在
myCustomer
指令范围内进行更改时,它将在范围层次结构中冒泡,并将更改控制器中的
users
对象:

angular.module('docsIsolateScopeDirective', [])
   .controller('Controller', ['$scope', function($scope) {
       $scope.users = [{
                first_name: 'naomi',
                last_name: 'doe'
           },
           {
                first_name: 'igor',
                last_name: 'doe'
           }]
}])
您的模板应该如下所示:

<div ng-controller="Controller" ng-repeat="user in users">
    <my-customer info="user"></my-customer>
    <hr>
</div>



您测试过吗?我得到了您的第一行“意外令牌函数”和“未捕获错误:[$injector:modulerr]”的错误@NewDeveloper稍等几分钟,让我给您完整的信息example@NewDeveloper现在检查,您可以在控制台中看到。$scope.info已被使用,因此我将其更改为$scope.attrsInfo=$attrs.info。你可以在电视上看到它。但是控制器中$scope.attrsInfo的值未定义。@NewDeveloper检查我的答案,我已经更新了,它正在工作,只需替换代码即可。
<div ng-controller="Controller" ng-repeat="user in users">
    <my-customer info="user"></my-customer>
    <hr>
</div>