建立一个角度指令,并且无法找到" @"装置..
.directive('mydirective', function()
{
return {
scope: {
test: "@"
}
}
}
答案 0 :(得分:3)
这意味着此属性将具有属性中指示的值。
在你的情况下:
<mydirective test="hello">
</mydirective>
该指令实例的scope.test
值将为“hello”。
.directive('mydirective', function()
{
return {
scope: {
test: "@"
},
link: function(scope, element, attrs, tabsCtrl) {
// scope.test == "hello"
}
}
}
答案 1 :(得分:1)
这是docs所说的意思。
@或@attr - 将本地范围属性绑定到DOM的值 属性。由于DOM属性,结果总是一个字符串 字符串。如果未指定attr名称,则属性名称为 假设与本地名称相同。范围的给定和小部件定义:{localName:'@ myAttr'}, 那么widget作用域属性localName将反映插值 hello {{name}}的值。由于名称属性发生了变化,因此 小部件范围上的localName属性。该名称是从 父范围(不是组件范围)。
因此它与=
类似,但它不是绑定到来自不同范围的值,而是绑定到DOM中的属性值。
答案 2 :(得分:1)
在angular中,我们可以通过三种方式将值绑定到指令。
1。)=
2。)&amp;
3。)@
&#34; =&#34;用于双向绑定。我换了控制器。反映在指令和反向。
&#34;&安培;&#34;用于表达式。应该用于传递函数。
&#34; @&#34;用于单向绑定。这是作为字符串接收的。但无论如何你可以解析得到对象。所以发送单向绑定数据很好。 (在指令中完成的更改不会反映在控制器中)
通过属性发送数据的其他方式。你可以通过&#34; attr&#34;链接函数中的参数。