【问题标题】:Polymer display content based on URL基于 URL 的聚合物显示内容
【发布时间】:2016-04-02 23:04:41
【问题描述】:

我正在尝试创建一个自定义元素以供重用。我所拥有的是由三个属性组成的数据,这些属性将显示在其各自的页面上,具体取决于您单击的链接。

我正在使用Polymer Starter Kit。基本上,我希望有一页信息会根据 URL 的内容而变化。我在一个页面上有一个程序列表,其中包含指向它们各自页面的链接。到目前为止,我有这个:

在我的 index.html 中,我有一个如下所示的部分:

<section data-route="programs">
<paper-material elevation="1">
<h1>Programs</h1>
<a href$="{{baseUrl}}programs/firstprogram">Program 1</a></br>
<a href$="{{baseUrl}}programs/secondprogram">Program 2</a></br>
<a href$="{{baseUrl}}programs/thirdprogram">Program 3</a></br>
</paper-material>
</section>

然后我有一个自定义元素,程序信息,看起来像这样

<dom-module id="program-info">
  <template>
    <h2 class="page-title">{{program.name}}</h2>
    <p>{{program.price}}</p>
    <p>{{program.description}}</p>
  </template>
  <script>
    (function() {
      'use strict';
      Polymer({
        is: 'program-info'
      });
    })();
  </script>
</dom-module>

根据点击的程序,我想抓取数据并将其用于我的自定义元素(名称、价格、描述)。由于只有七个程序,我考虑过将其放入数组中,但我不知道如何根据 URL 在数组中抓取正确的项目。

有什么想法吗?

【问题讨论】:

标签: polymer-1.0 polymer-starter-kit


【解决方案1】:

如果您确实在使用 PSK,请查看 app/index.html 中的部分/页面 user-info。它根据从 URL 中获取的名称显示有关用户的信息。

当然你也应该看看app/elements/routing.html中的路由配置,了解如何从URL中抓取名称并将其设置为params变量。

那么您应该添加/修改您的 programs 路由以满足您的需要。

编辑:

您可以在此示例应用程序中看到类似的方法:data is fetchroute changes 时是 set to an article propertyblog-app element 的范围内。在此元素中,所述article 属性本身绑定到similarly named property of the "page element" article-detail,该similarly named property of the "page element" article-detail 负责显示之前通过网络获取的文章内容。

【讨论】:

  • 正确,这很容易,但并不完全是我想要的。用户信息页面仅根据 URL 显示用户的名称。我需要超越这一点,并根据 URL 显示其他数据。以用户信息为例,假设我想同时显示用户的年龄和职业。我会将该信息存储在 json 文件或数组中,但最终需要根据用户提取该信息。 PSK 所做的只是使用 URL 中的名称,仅此而已。
  • 您是否将每个页面提取到一个元素中?如果是这样,您可以简单地观察此params 属性的更改,测试您的页面是否确实是选定的页面,然后从您的数组或使用iron-ajax 的JSON 中获取您需要的数据
  • 我刚刚发现了这个,你认为这就是你在说的@vincent guillou? polymerlabs.github.io/app-layout/templates/publishing/#/art/…
  • 这不是我所建议的(在app.js 中的此示例中,当路由更改时直接处理数据获取)但这种方法也应该可以正常工作。
  • app.js 中有什么例子?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 2015-01-24
  • 2014-10-14
  • 1970-01-01
相关资源
最近更新 更多