重置聚合物页面的状态

Reset the state of a page in polymer

我有几个铁页,其中 'home' 是我的主页。它里面有一堆游戏卡片,当用户点击一张卡片时,它会开始一个带有一堆问题的测验。当我返回主页并再次单击卡片时,它不会开始测验。它只是从以前的状态继续。我怎样才能让它重新开始测验。以下是我的页面。我正在使用 Polymer

的入门套件
<iron-pages
  selected="[[page]]"
  attr-for-selected="name"
  fallback-selection="view404"
  selected-attribute="visible"
  role="main"
>
  <my-home name="home"></my-home>
  <my-login name="login"></my-login>
  <my-view3 name="view3"></my-view3>
  <my-view404 name="view404"></my-view404>
  <my-game name="game"></my-game>
</iron-pages>

我想你刚刚遇到了这个问题:PolymerElements/iron-pages#53

根据建议 in a comment, you can check out the iron-lazy-pages 支持 dom-if,因此其 restamp 功能。

更新:例子

<iron-lazy-pages
  selected="[[page]]"
  attr-for-selected="data-route"
  fallback-selection="view404"
  selected-attribute="visible"
  role="main">
    <template is="dom-if" data-route="home" restamp>
      <my-home></my-home>
    </template>

    ...
</iron-lazy-pages>

注意:我还没有测试过这个例子,但它与 dom-if example on the iron-lazy-pages repo.

非常相似

iron-lazy-pages v2.2.1 运行不正常

我是这样用的"iron-page",效果很好

      isEqual(val1, val2) {
        return val1 == val2;
      }
 <iron-pages selected="[[page]]" attr-for-selected="data-route" fallback-selection="view404" role="main">
      <!--User block-->
      <div data-route="login">
        <template is="dom-if" if="{{isEqual('login',page)}}" restamp>
          <user-login></user-login>
        </template>
      </div>
      <div data-route="view404">
        <template is="dom-if" if="{{isEqual('view404',page)}}" restamp>
          <my-view404></my-view404>
        </template>
      </div>
    </iron-pages>

完美运行