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中的属性值捕获为字符串值=
将属性作为父作用域的属性进行计算&
将属性作为父范围的方法进行计算- Cases(camel case或pascal case)表示角度指令中的破折号,因此
需要在html中用作sampleText
李>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只需使用“=”。我得拉小提琴才能算出来。