Angular2 - 为什么不能在属性名称中使用破折号

时间:2017-06-14 13:40:47

标签: javascript angular angular2-services

为什么我不能在这里使用破折号?

export class FizzService {
  getFizzes() : object[] {
    return[
      {
        iconClass: 'glyphicon glyphicon-search',
      },

所以在上面我不能用

icon-class: 'glyphicon glyphicon-search',

我必须这样做:

iconClass: 'glyphicon glyphicon-search',

否则我看到错误:

enter image description here

3 个答案:

答案 0 :(得分:4)

属性名称可以是字符串("foo")或标识符(foo)。

标识符也可用于变量。

标识符不能包含连字符,因为它是 minus 运算符。

amount-discount表示“金额减去折扣”,而不是“名称中带有连字符的变量”。

标识符不能包含空格,+字符和许多其他字符。如果您希望属性名称包含特殊字符,请使用字符串。

答案 1 :(得分:2)

这是因为Object的属性不应包含除下划线之外的任何特殊字符(例如:property_name)。

如果你想在对象的属性中使用连字符,那么我们应该将属性放在引号中(例如:" property-name")。

请通过以下链接查看javascript中的命名约定。 http://javascript.crockford.com/code.html

答案 2 :(得分:0)

只需在属性名称周围用特殊字符引起引号,即:

'ng-class':'glyphicon glyphicon-house'