Angular2-为什么不能在属性名称中使用破折号或其他特殊字符

问题描述 投票:1回答:3

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

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

所以在上面我不能使用

icon-class: 'glyphicon glyphicon-search',

我必须这样做:

iconClass: 'glyphicon glyphicon-search',

否则,我会看到错误:

enter image description here

javascript angular angular2-services
3个回答
4
投票

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

标识符也可用于变量。

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

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

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


2
投票

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

如果要在对象的属性中使用连字符,则应将该属性放在引号中(例如:“ property-name”)。

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


0
投票

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

'ng-class':'glyphicon glyphicon-house'
© www.soinside.com 2019 - 2024. All rights reserved.