Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Angularjs 指令上的角度属性_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 指令上的角度属性

Angularjs 指令上的角度属性,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我不理解该属性在这种情况下的作用: <div my-custom-directive="what does this do?"></div> 一个真实的例子: <div class="grid" ui-grid="gridOptionsSimple"> </div> 将属性传递给链接函数并非易事,因为您可能会这样做: <div my-custom-attribute="what does this do?" extra-attr

我不理解该属性在这种情况下的作用:

<div my-custom-directive="what does this do?"></div>

一个真实的例子:

 <div class="grid" ui-grid="gridOptionsSimple"> </div>

将属性传递给链接函数并非易事,因为您可能会这样做:

<div my-custom-attribute="what does this do?" extra-attribute="123"></div>


看起来它在作用域上创建了一个属性。但这就是我所能做到的。很抱歉这是一个相当初级的问题。

这里有一个例子,我认为你的问题是关于:

var app = angular.module('demo',[]);

app.directive('SampleQuilt', function() {
        return {
            restrict: 'E',
            scope:{ extraAttribute: "@", someText: "@"  }
            };
  });
通过向指令中添加范围,我们创建了一个“隔离范围”。使用此方法,范围可以通过3种方式捕获属性:

  • @
    将DOM中的属性值捕获为字符串值
  • =
    将属性作为父作用域的属性进行计算
  • &
    将属性作为父范围的方法进行计算
  • 您可以在此处阅读更多信息:

    关于您的html

    • Cases(camel case或pascal case)表示角度指令中的破折号,因此
      sampleText
      需要在html中用作
      sample text

    ui grid=“gridoptionsimple”
    的情况下,它将父作用域上的
    gridoptionsimple
    值传递到ui grid的隔离作用域中

    如果您检查ui-grid指令的源代码(此处:),您将看到该指令指定
    uiGrid
    (“ui-”snake-case中的grid)范围属性绑定到
    uiGrid
    属性(“=”只是“=uiGrid”的缩写)

    返回{
    templateUrl:“ui网格/ui网格”,
    范围:{
    uiGrid:“=”
    },
    替换:正确,
    是的,
    ...
    };
    

    这允许网格将所有选项和数据引用都放入自己的作用域中,而无需弄脏和父控制器作用域。

    它确实为链接函数添加了一个非常特定的属性。其他必需的双向绑定仍然需要使用其他属性指定。我不明白您到底想了解什么?我也不明白。我很困惑。然而,被接受的答案回答了一个我甚至无法正确表述的问题,这个问题可能会得到某种额外的分数。好吧,你更快了;)也许可以添加一个示例链接函数来显示如何访问范围中的这些内容,并解释
    scope
    attrs
    之间的区别。谢谢。我无法理解的部分可以用“=只是=uiGrid的缩写”来解释。这是一个特例。如果隔离范围属性名称与属性名称相同,则可以使用“=”。这条捷径意味着,如果隔离作用域属性与指令具有相同的名称,则不需要任何其他属性,CA只需使用“=”。我得拉小提琴才能算出来。