[property]=和Angular 4标记中的属性之间有什么区别?

[property]=和Angular 4标记中的属性之间有什么区别?,angular,Angular,所以,让我们为素数表做以下标记 显然,selectionMode=“multiple”和[selection]=“multiple”之间存在差异,因为第二个变量不能使表格可选。有什么区别 有一段时间,我认为property=将设置一次值,而[property]=将该属性绑定到输入值,以便反映其更改,但如果是这样,在这两个变量中,表的行为在我的情况下应该是相同的 selectionMode="multiple" 是纯HTML属性,与角度无关 [selection]="multiple" 创

所以,让我们为素数表做以下标记


显然,
selectionMode=“multiple”
[selection]=“multiple”
之间存在差异,因为第二个变量不能使表格可选。有什么区别

有一段时间,我认为
property=
将设置一次值,而
[property]=
将该属性绑定到输入值,以便反映其更改,但如果是这样,在这两个变量中,表的行为在我的情况下应该是相同的

selectionMode="multiple"
是纯HTML属性,与角度无关

[selection]="multiple"

创建从字段(或表达式)
multiple
属性的角度绑定
选择
区别在于引擎盖下使用的装饰器

对于这种情况,如[property]=“组件ts文件使用@Input装饰器实现该属性

对于类似此属性=“的情况,组件ts文件使用@属性实现该属性

请参见此示例:

export class MyComponent {

    @Input() public title1: string;
    public title2: string;

    constructor(@Attribute('title2') titleAttr) {
        this.title2 = titleAttr;
    }

}
因此,您可以像这样使用它:

<my-component [title1]="'testing'" title2="testing2"></my-component>

还有一件事要牢记在心,并且能够决定何时使用哪一种是您想要传递的值类型。当输入接受来自组件上下文的变量时,该属性只接受第行中传递的值


请注意,在上面的示例中,对于输入,我使用单引号在第行传递字符串,但它可能没有引号和现有变量的名称。

我相信这是在angular 2中作为绑定值属性引入的,我认为它在angular 4中是相同的,它与angular无关,但可以与Alejandro解释的组件相关。不,它不能。如果名称与输入匹配,Angular将读取属性,但您也可以使用纯JS读取属性,因此我认为这与Angular无关。
@Attribute()
decorator是一个读取属性的指令,但这与刚才添加到DOM中的
selectionMode=“multiple”
不同(就像您自己将其写入
index.html
)我想你把注意力集中在表达的右边,而我的注意力集中在表达的左边。我不这么认为。只有在添加`
构造函数(@Attribute('title2')titleAttr)时,参数才有效{
指示angular从宿主元素读取属性。没有angular与属性无关。这就是我的观点-在某些情况下,我的论点是有效的,正如你所指出的。这是Alejandro向我展示的,也是我所指的。我对angular是新手,不知道
@atribute
.谢谢你的努力!