删除降级的Angle 2组件属性周围的单引号会导致奇怪的行为

时间:2019-06-20 15:21:46

标签: angularjs angular pug angular-hybrid

我有一个降级的angular 2组件,在AngularJS组件中可以正常工作,直到我删除该组件的第二个属性周围的单引号为止。

编辑:此组件使用的此文件类型为ng.jade。

这有效:

user-score-component(
  [rating-score]="user.ratingScore"
  '[form-is-disabled]'="false"
  '(on-change)'="onRatingScoreChange($event)"
)

这不是:

user-score-component(
  [rating-score]="user.ratingScore"
  [form-is-disabled]="false"
  '(on-change)'="onRatingScoreChange($event)"
)

在第二个示例中,将false应用于rating-score,而form-is-disabled未定义。我可以在form-is-disabled前后加上单引号,但是在对混合应用程序进行了一些研究之后,我无法弄清楚这里的单引号在做什么。

为什么需要在第二个属性(form-is-disabled)上而不是在第一个属性(rating-score)上?

1 个答案:

答案 0 :(得分:0)

在Pug的问题跟踪器中的github上有此提及:https://github.com/pugjs/pug/issues/2050

  

这是一个很难解决的情况。例如:

input(foo='foo' [bar]='bar') //- since 'foo' [bar] is equivalent to
'foo'[bar] input(foo='foo'[bar]='bar') //- which is equivalent to
input(foo=('foo'[bar]='bar')) //- which is equivalent to
input(foo='bar')

input([foo]='foo' (bar)='bar') input(foo='foo'(bar)='bar')
input(foo=('foo'(bar)='bar')) //- 'foo'(bar)='bar → assigning to
rvalue ?
     

您可以使用的解决方法是引用属性名称:

     

input('[foo]'='foo' '[bar]'='bar') input('[foo]'='foo' '(bar)'='bar')

     

由于该错误无法修复,并且存在合理的解决方法,   我现在要解决这个问题。