1

我在一个页面上有两个 amp-selector 元素:

<amp-selector layout="container" on="select: AMP.setState({
      a1SelectedOption: event.targetOption
    })">
  <div option="a" selected>Option A</div>
  <div option="b">Option B</div>
</amp-selector>
<amp-selector layout="container" on="select: AMP.setState({
      a2SelectedOption: event.targetOption
    })">
  <div option="c" selected>Option C</div>
  <div option="d">Option D</div>
</amp-selector>

然后我有文本占位符:

<h3 id="a1" [text]="a1SelectedOption">a</h3>
<h3 id="a2" [text]="a2SelectedOption">c</h3>

当有人第一次与任一选择器交互时,另一个占位符被触发并将文本更新为空,例如在页面加载后,选择选项 B,占位符 html 变为<h3 id="a1" [text]="a1SelectedOption">b</h3> <h3 id="a2" [text]="a2SelectedOption">null</h3>.

我怀疑这是因为两者都在每个选择器event.targetOption的语句中使用,但是关于事件的文档对我来说并不清楚如何解决。on

设置独立于其他放大器选择器的变量值的适当方法是什么?

4

1 回答 1

1

AMP 事件模型似乎触发了所有状态值以进行评估,因此它将另一个变量闪烁到创建中并使用空值。

为了防止这个变量必须用默认值初始化,即

<amp-state id="a1SelectedOption"><script type="application/json"> "a" </script></amp-state>
<amp-state id="a2SelectedOption"><script type="application/json"> "c" </script></amp-state>
于 2021-04-23T16:12:19.470 回答