第一个Polymer应用 - (3)使用数据绑定

简介: 原文链接: Step 3: Using data binding翻译日期: 2014年7月7日翻译人员: 铁锚我们创建的个人信息卡还算漂亮,但对整个应用来说,只有一张卡片看起来有点空荡荡的感觉。在本节中,将通过web服务获取数据,并使用Polymer的数据绑定(data binding)来显示一系列的卡片。
原文链接: Step 3: Using data binding
翻译日期: 2014年7月7日
翻译人员: 铁锚

我们创建的个人信息卡还算漂亮,但对整个应用来说,只有一张卡片看起来有点空荡荡的感觉。在本节中,将通过web服务获取数据,并使用Polymer的数据绑定(data binding)来显示一系列的卡片。


获取数据,需要使用初始应用程序(starter)提供的 <post-service> 元素。该元素为虚拟社交网络提供了一个非常简单的API。在本节中,您将使用 posts 属性, 它返回像下面这样的 post 对象组成的数组:
{
  "uid": 2,
  "text" : "Loving this Polymer thing.",
  "username" : "Rob",
  "avatar" : "../images/avatar-02.svg",
  "favorite": false
}

编辑 post-list.html 文件

进入根目录下面的 starter 目录, 用编辑器打开 post-list.html 文件.
  <link rel="import" href="../components/polymer/polymer.html">
  <link rel="import" href="post-service.html">
  <link rel="import" href="post-card.html">

  <polymer-element name="post-list" attributes="show">
    <template>
      <style>
      :host {
        display: block;
        width: 100%;
      }
      post-card {
        margin-bottom: 30px;
      }
      </style>
      
      <!-- 这里可以添加其他标签 -->
  ...
说明:
  • 文件已经包含了<post-service>元素的导入,所以可以直接使用。
  • 属性 attributes="show" 创建了一个名为 show 的 published property(发布属性)。
一个 published property(发布属性) 是指在标签中可以通过配置而使用一个特性(attribute), 或使用双向数据绑定(two-way data binding)连接到另一个属性。在后面的步骤中您将使用 show 属性。 关于发布属性,可以参考这篇中文翻译:   Polymer API开发指南 (二)(翻译)

------------------------------------------------------------------------------------

在元素的 <template> 中添加一个 <post-service> 元素:
  ...
  <post-service id="service" posts="{{posts}}">
  </post-service>
  ...
  
说明:
  • posts="{{posts}}" 属性在 <post-service> 和 你的自定义元素间添加了双向(two-way)数据绑定.
数据绑定( data binding)连接服务(service)元素的 posts 属性到一个本地属性( local property,这里也称为 posts )。你在自定义元素中定义的所有方法都可以通过 this.posts 访问这个响应对象。

----------------------------------------------------------------------------------------------------------------
显示动态列表名片卡

<post-service> 元素后面添加下面的 <div><template> 标签:
<div layout vertical center>
  <template repeat="{{post in posts}}">
    <post-card>
      <img src="{{post.avatar}}" width="70" height="70">
      <h2>{{post.username}}</h2>
      <p>{{post.text}}</p>
    </post-card>
  </template>
</div>

说明:
  • 这个新的语法 repeat="{{post in posts}}" ,让模板(template )为 posts 数组中的每个item 创建一个新的实例。
  • 在每个模板实例中,每个单独的绑定(例如 {{post.avatar}} )都会被item中相应的值替换。
编辑 index.html 文件
<post-list> 元素导入 index.html

打开 index.html 并引入 post-list.html 文件添加导入链接。你可以用 post-list.html 替换现有的 post-card.html 文件:
<link rel="import" href="post-list.html">
-------------------------------------------------------------------------------------

使用 <post-list> 元素.

找到上一节中你添加的 <post-card> 元素,然后把它替换成 <post-list>:
...
<div class="container" layout vertical center>
  <post-list show="all"></post-list>
</div>
...

检验成果

保存(建议编辑过程中随时保存,这是好的编码习惯) index.html 文件,部署,然后用chrome打开链接或刷新页面, 比如:
http://localhost:8080/polymer-tutorial-master/starter/index.html

则显示效果如下所示:
图 Step3完成后的效果.

如果发生错误或不显示,可以和 step-3 目录下的 post-list.html, index.html 文件对比,当然,你也可以直接访问这下面的文件试试效果。

动手实践:  
打开 post-service.html 看看组件的工作机制。在内部,它使用 <core-ajax> 元素来执行的HTTP请求。

下一节

第一个Polymer应用 - (4)收尾工作

目录
相关文章
|
14天前
|
人工智能 自然语言处理 Linux
OpenClaw(Clawdbot)基础入门保姆级教程:零门槛阿里云/本地部署+百炼API配置+核心功能实操及避坑指南
OpenClaw(原Clawdbot)作为开源AI Agent框架,以“轻量灵活、功能可扩展、全平台兼容”为核心优势,成为新手入门AI工具的优选。但多数基础教程仅覆盖简单安装步骤,缺乏对核心概念、配置逻辑与实操场景的详细拆解,导致新手部署后仍不知如何发挥其价值。
512 1
|
机器学习/深度学习 数据挖掘 网络架构
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
|
12天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
5698 14
|
20天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
22424 118

热门文章

最新文章