amp-bind 中的比较运算符
Comparison operators in amp-bind
我正在尝试在 amp 中实现宏,如下所示:
<amp-bind-macro id="isTest" arguments="str" expression="str==='test'" />
但是抛出了这个错误:
amp-bind-macro#isTest.i-amphtml-element.i-amphtml-layout-container.i-amphtml-error %s amp-
bind: Parsing amp-bind-macro failed. Parse error on line 1:
str==='test'
-----^
Expecting '(', '!', '-', '+', 'NAME', '[', 'STRING', 'NUMBER', 'TRUE', 'FALSE', 'NULL',
'{', got 'INVALID'
我猜这是因为 AMP 不支持 ===
运算符。如果是这样,我怎样才能在任意两个值之间进行这样的比较?
amp-bind expression grammar 确实列出了 ==
(但不是 ===
)作为支持。因此,这有效:
<amp-bind-macro id="isTest" arguments="str" expression="str=='test'" />
虽然 ==
也进行类型转换(例如 '10' == 10
是真的),但这可能不是什么大问题,因为 amp-bind
表达式往往很简单。如果您觉得需要 ===
的用例,我建议您打开 an issue 并将其作为反馈提供给 AMP 团队。
我正在尝试在 amp 中实现宏,如下所示:
<amp-bind-macro id="isTest" arguments="str" expression="str==='test'" />
但是抛出了这个错误:
amp-bind-macro#isTest.i-amphtml-element.i-amphtml-layout-container.i-amphtml-error %s amp-
bind: Parsing amp-bind-macro failed. Parse error on line 1:
str==='test'
-----^
Expecting '(', '!', '-', '+', 'NAME', '[', 'STRING', 'NUMBER', 'TRUE', 'FALSE', 'NULL',
'{', got 'INVALID'
我猜这是因为 AMP 不支持 ===
运算符。如果是这样,我怎样才能在任意两个值之间进行这样的比较?
amp-bind expression grammar 确实列出了 ==
(但不是 ===
)作为支持。因此,这有效:
<amp-bind-macro id="isTest" arguments="str" expression="str=='test'" />
虽然 ==
也进行类型转换(例如 '10' == 10
是真的),但这可能不是什么大问题,因为 amp-bind
表达式往往很简单。如果您觉得需要 ===
的用例,我建议您打开 an issue 并将其作为反馈提供给 AMP 团队。