Ember 翻译——教程四:模型钩子
来源:互联网 发布:net域名注册 编辑:程序博客网 时间:2024/06/15 19:53
模型钩子
现在,让我们在 index 模板添加一个可租借信息列表。我们知道,租借信息不会是静态的,因为用户最后需要能够添加、更新、删除它们。因为这个原因,我们需要一个租借信息模型来保存租借信息。简单起见,一开始我们将使用硬编码的 JavaScript 数组对象。稍后,我们将切换到使用 Ember Data,它是我们的 app 中一个强力的 数据管理库。
这会是我们主页已完成时候的样子:
在 Ember 里,路由处理程序将负责加载模型中的数据。让我们打开 app/routes/rentals.js
,然后将我们硬编码的数据添加到其中作为模型钩子的返回值:
app/routes/rentals.js
import Ember from 'ember';let rentals = [{ id: 'grand-old-mansion', title: 'Grand Old Mansion', owner: 'Veruca Salt', city: 'San Francisco', type: 'Estate', bedrooms: 15, image: 'https://upload.wikimedia.org/wikipedia/commons/c/cb/Crane_estate_(5).jpg'}, { id: 'urban-living', title: 'Urban Living', owner: 'Mike TV', city: 'Seattle', type: 'Condo', bedrooms: 1, image: 'https://upload.wikimedia.org/wikipedia/commons/0/0e/Alfonso_13_Highrise_Tegucigalpa.jpg'}, { id: 'downtown-charm', title: 'Downtown Charm', owner: 'Violet Beauregarde', city: 'Portland', type: 'Apartment', bedrooms: 3, image: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Wheeldon_Apartment_Building_-_Portland_Oregon.jpg'}];export default Ember.Route.extend({ model() { return rentals; }});
这里,我们使用了 ES6 中的方法定义的缩写方式: model()
相当于是 model: function ()
。
model
函数表现的像一个钩子,这意味着 Ember 将在我们 app 中的不同时间去调用它。我们添加到我们 rentals
路由处理程序中的模型钩子将在一个用户进入到 rentals
路由是被调用。
model
钩子返回我们的租借信息数组,然后将它传递到我们的 rentals
模板来作为 model
的值。
现在,让我们继续看我们的模板。我们可以使用模型数据来展示我们的租赁信息列表。这里,我们将使用另外一个常用的叫做 {{each}} 的 Handlebars helper。这一个 helper 将让我们循环遍历模型中的每一个对象。
app/templates/rentals.hbs
<div class="jumbo"> <div class="right tomster"></div> <h2>Welcome!</h2> <p> We hope you find exactly what you're looking for in a place to stay. <br>Browse our listings, or use the search box below to narrow your search. </p> {{#link-to 'about' class="button"}} About Us {{/link-to}}</div>{{#each model as |rental|}} <article class="listing"> <h3>{{rental.title}}</h3> <div class="detail owner"> <span>Owner:</span> {{rental.owner}} </div> <div class="detail type"> <span>Type:</span> {{rental.type}} </div> <div class="detail location"> <span>Location:</span> {{rental.city}} </div> <div class="detail bedrooms"> <span>Number of bedrooms:</span> {{rental.bedrooms}} </div> </article>{{/each}}
在这个模板中,我们循环了每一个模型对象,同时将其命名为 rental。对应每一个 rental,我们创建一个房屋信息的列表。
既然我们将展示租借信息,我们的验收测试验证通过时应该显示:
原文地址
- Ember 翻译——教程四:模型钩子
- Ember旅程系列(四) -- 模型钩子
- Ember 翻译——对象模型:一、Ember 中的对象
- Ember 翻译——教程六:使用 Ember Data
- Ember 翻译——教程十二:部署
- Ember 翻译——对象模型:二、类和实例
- Ember 翻译——教程一:创建你的 APP
- Ember 翻译——教程二:设置测试
- Ember 翻译——教程三:路由和模板
- Ember 翻译——教程五:安装插件
- Ember 翻译——教程八:创建一个 Handlebars helper
- Ember 翻译——教程十:服务和功能
- Ember 翻译——教程十一:添加嵌套路由
- Ember 翻译——入门二:安装 Ember
- Ember 翻译——官网首页
- Ember 翻译——引导页
- Ember 翻译——路由:介绍
- Ember 翻译——教程七:创建一个简单的组件
- 《白夜行》读书笔记
- HTML5--内联SVG
- javascript——卡片切换
- js_for循环
- 面向对象——继承
- Ember 翻译——教程四:模型钩子
- 随笔
- 面试--servlet如何获取session?(51)
- tomcat7的性能优化
- 二分查找算法 php
- 用户名不在sudoers文件中,此事将被报告。
- AHOI2009维护序列--线段树lazy tag模板
- 浅谈游戏热更新
- elf文件格式解析