2014-01-25 139 views
0

我研究这个链接AngularJS指令:DirectivesAngularJS,指令

当我达到约上一个例子:通信的

我没有找到这条线(从的script.js)创建指令:

title: '@' // Line 33 at the script.js 

的问题是,我不知道这是什么意思行,我只知道那个标题是一个孤立的范围属性,但什么是@,我了解到:

  • '=' is where the attribute name is the same as the value
  • '=info' where info is the attribute

但是从上面的链接没有解释什么是@的文档,我最好的猜测是,当@是值,该值分配给title属性是标题属性的价值,但我不确定是否有人可以帮助我理解它是什么,我将非常感激,谢谢大家,祝你有美好的一天。

+0

https://开头这里的egghead.io/lessons是更好的文档。查看关于@参数的视频。 – Rantiev

+0

谢谢你的网站Rantiev。 –

回答

4

@是一种独立的作用域绑定(如=)。但是,@表示只将的值的属性和而不是创建到外部作用域的双向绑定。

所以,如果你想在指令中使用某个值,但这个值在指令实例的持续时间内没有改变,那么@是个不错的选择。

一个简单的例子是,如果你想设置的指令模板颜色:

<my-color-box color="red"></my-color-box> 

然后,在该指令使用这样的属性:

app.directive('myColorBox', function() { 

    return { 
     restrict: E, 
     scope: { 
     color: '@' 
     }, 
     template: '<div style="background-color: {{color}}"></div>' 
    } 
}); 
+0

似乎是真的。 – Rantiev

+0

谢谢达文,我想我现在明白了。 –

+0

首先要理解可能会非常棘手,但一旦开始使用它们,它就会有意义。 –