将属性值传递给指令控制器

时间:2016-04-07 15:33:25

标签: angularjs angularjs-directive

指令用法

foreach (var groupingLevel in p) { // groupingLevel.Key foreach(var item in groupingLevel) { // item. Do something } }

指令定义

<my-directive my-attr='StackOverflow'></my-directive>

有没有办法实现这一目标。

2 个答案:

答案 0 :(得分:1)

是的,您可以使用范围将值传递给指令。

您的代码可以写成类似

的内容
   app.directive('myDirective', function($scope){
    return {
      restrict: 'E',
      Scope:{
        myAttr:'='
      },
      template: 'I want to print the attribute value: and here is your value: {{myAttr}}',
      controller: function($scope){
       // I also want to access the attribute value here.
        console.log($scope.myAttr);
      }

}; });

和用法相同

<my-directive my-attr='StackOverflow'></my-directive>

这是同一个问题 Angularjs - Pass argument to directive

此外,您还可以找到有关指令使用的更多信息 https://docs.angularjs.org/guide/directive

答案 1 :(得分:0)

而不是scope: true写,

scope: {
  myattr: '@'
}

然后myattr

中将提供$scope

Fiddle

  

确保使用小外壳,不知何故使用任何其他外壳如帕斯卡或骆驼会导致问题。