Angular 将字符串传递给组件——有或没有绑定?

Dom*_*bij 5 angular2-template angular

我知道有几种方法可以将字符串文字传递给组件:

<component inputField="string"></component>
<component [inputField]="'string'"></component>
<component inputField="{{'string'}}"></component>
Run Code Online (Sandbox Code Playgroud)

它们有区别吗?Angular 是以第二种和第三种方式检查属性的更改而不是第一种检查,还是 Angular 很聪明,它不检查包含字符串文字的属性的任何更改?

Tom*_*ski 1

它们的不同之处在于第二个版本是最好的。假设你的代码中有它:

<component [inputField]="'string'"></component>
Run Code Online (Sandbox Code Playgroud)

现在,您需要参数化 inputField 值。您需要做的是将“string”替换为 inputFieldProperty,即具有所需值的参数名称:

<component [inputField]="inputFieldProperty"></component>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这与更改 JS(或 TS)中的任何内容等效:

inputField = 'string';
Run Code Online (Sandbox Code Playgroud)

到:

inputField = inputFieldProperty;
Run Code Online (Sandbox Code Playgroud)

所以很清楚也很容易弄清楚。3 种解决方案中最干净的。