我有一个降级的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
)上?
答案 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')
由于该错误无法修复,并且存在合理的解决方法, 我现在要解决这个问题。