Angular 2/4是否真的区分大小写?

时间:2018-03-07 05:45:18

标签: html angular typescript

我知道这听起来像一个愚蠢的问题,但我对Angular是否真的区分大小写或仅在某些情况下有点困惑? 昨天我被一段代码困住了几个小时,我无法使它工作。我在SO上发布了问题,但我发现问题在于我使用的是ngfor而不是ngFor。在我修好之后,它运作得很好。

同样在我的代码中,我使用的是[innerHtml],但有关人员纠正了我的说法,正确的拼写是[innerHTML]。但是,我的代码与前者一起正常工作。现在我的问题是,如果Angular确实区分大小写,那么我以前的实现应该不会真正起作用。

有人可以详细说明这个吗?

3 个答案:

答案 0 :(得分:5)

是的,因为angular 2/4使用区分大小写的typescript。 在您的情况下,ngForstructural directive中是angular,但在innerHTML中,它是HTML属性,HTML isn&#39 ;区分大小写。

答案 1 :(得分:1)

详细说明你的问题,

最新版本的angular使用Typescript,所有像ngIf和ngFor这样的角度内部指令都是用typescript编写的,所以它是一个区分大小写的,

HTML通常不区分大小写,但将HTML标记保持为小写是一种很好的做法。

在你的情况下[innerHtml]是HTML的DOM属性,因此可以用小写的方式编写

答案 2 :(得分:0)

是的,Angular这样的*ngFor结构化指令区分大小写。 如果您改写*ngfor,Angular不会将相关的html块渲染为模板: https://angular.io/guide/template-syntax#ngfor

此外,property binding在Angular中也区分大小写。这里要注意的重要一点是Angular引用了Html DOM properties而不是Html attributes。 HTML属性仅用于初始化html,此后不会更改。 另一方面,DOM属性可以更改: https://angular.io/guide/template-syntax#html-attribute-vs-dom-property

在您使用innerHTML的情况下,innerHTML是DOM元素的正确拼写。您是对的,innerHtml也可以正常工作。老实说,我找不到原因。但是其他类似innerhtml的拼写形式都会导致错误:

无法绑定到“ innerhtml”,因为它不是“ p”的已知属性

我可以想象innerHtml就像一个“隐藏的” Html属性,初始化后也可以更改。