带或不带方括号[]的属性指令语法

时间:2019-08-22 06:16:10

标签: angular

属性指令应该使用selector:'[myDirective]'语法的选择器,然后在<p myDirective ></p>'之类的模板中使用。我还看到ngClass是属性指令,用法类似于[ngClass]="'class1 class2'"。我想知道什么时候使用方括号,什么时候不使用。它与指令选择器和具有相同名称的属性绑定之间的某种关系有关吗?

2 个答案:

答案 0 :(得分:0)

当需要对表达式求值时,使用方括号。 ngClass 可以不带括号使用。下面的代码会将class1和class2视为普通字符串。

ngClass="class1 class2"

答案 1 :(得分:0)

我认为这取决于您正在使用哪种实体。 在选择器中,如果您正在使用组件,则可以编写:

selector:'[myComponent]'  => <div myComponent></div>

selector:'myComponent'   => <myComponent></myComponent>

当涉及到属性绑定时,您可以编写

<div [title]="theTitleProperty"></div>

,它将html标题属性绑定到components属性theTitleProperty的值。 (alt div title =“ {{theTitleProperty}}”))

<div title="theTitleProperty"></div>

将为标题赋予值'theTitleProperty'

ngClass的替代方法可能是

<div [class]="theClassProperty"></div>

,然后将其@Inputs输入到组件。 任何组件都可能有一个@Input,您可以在两个括号之间使用它,也可以不使用 如果您的组件带有@Input()aText:string; 您可以这样使用它:

<my-component [aText]="myTextProperty"></div>

它会将控件属性myTextProperty发送到组件@Input 但是如果你这样写

<my-component aText="myTextProperty"></div> 

它将把myTextProperty发送到组件中。

希望它会有所帮助