7.6 Models -- Finding Records
Ember Data的store为检索一个类型的records提供一个接口。
一、Retrieving a single record(检索单记录)
1. 通过type和ID使用store.findRecord()去检索一条record。这将返回一个promise,它通过请求的record来实现:
var post = this.store.findRecord('post', 1); // => GET /posts/1
2. 通过type和ID使用store.peekRecord()去检索一条record,没有产生网络请求。只有当它已经在sotre中存在时,这将返回这条record。
var post = this.store.peekRecord('post', 1); // => no network request
二、Retrieving mutiple records
1. 对于一个给定的type,使用store.findAll()来检索所有的records。
var posts = this.store.findAll('post'); // => GET /posts
2. 对于一个给定的type,使用store.peekAll()来检索所有的records,这些records已经被加载到store中,不会产生网络请求:
var posts = this.store.peekAll('post'); // => no network request
- store.findAll()返回一个DS.PromiseArray,它实现DS.RecordArray并且store.peekAll直接返回一个DS.RecordArray。
- 注意DS.RecordArray不是一个JS数组,这很重要。它是一个实现了Ember.Enumerable的对象。这很重要,因为,例如,如果你想通过index来检索records,[]符号没有用,你必须使用objcetAt(index)代替。
三、Querying for multiple records
Ember Data提供了查询满足某些条件的记录的能力。调用store.query()将获得一个GET请求,并将传递的对象序列化为查询参数。这个方法和find方法一样返回DS.PromiseArray。
例如,我们可以查询所有的名字为Peter的pserson models:
var peters = this.store.query('person', { name: 'Peter' }); // => GET to /persons?name=Peter
四、Integrating with the route's model hook
1. 就像在 Specifying a Route's Model中讨论的一样,routes负责告诉它们的模板加载哪一个model。
2. Ember.Route的model hook支持开箱即用的异步的值。如果你从model hook中返回一个promise,这个路由器将会等待直到这个promise完成渲染模板。
3. 使用Ember Data使得它很容易使用异步数据编写apps。仅仅从model hook中返回请求的record,并且让Ember处理是否需要网络请求。
app/router.js
var Router = Ember.Router.extend({}); Router.map(function() {
this.route('posts');
this.route('post', { path: ':post_id' });
}); export default Router;
app/routes/posts.js
export default Ember.Route.extend({
model() {
return this.store.findAll('post');
}
});
app/routes/post.js
export default Ember.Route.extend({
model(params) {
return this.store.findRecord('post', params.post_id);
}
})
7.6 Models -- Finding Records的更多相关文章
- 7.4 Models -- Pushing Records into the Store
一.概述 1. store是作为一个所有records的缓存,这些records已经被你的应用程序加载.在你的app中如果你的路由或者一个controller请求一条record,如果它在缓存中这个s ...
- phalcon: 查找记录(Finding Records)可用的查询设置如下:
可用的查询设置如下: 参数 描述 举例 conditions Search conditions for the find operation. Is used to extract only tho ...
- 7.5 Models -- Persisting Records
一.概述 1. 在Ember Data上以每个实例为基础,records被持久化.在DS.Model的任何一个实例上调用save()并且它将产生一个网络请求. 2. 下面是一些例子: var post ...
- Ember.js学习教程 -- 目录
写在前面的话: 公司的新项目需要用到Ember.js,版本为v1.13.0.由于网上关于Ember的资料非常少,所以只有硬着头皮看官网的Guides,为了加深印象和方便以后查阅就用自己拙劣的英语水平把 ...
- Orchard入门:如何创建一个完整Module
这是一个Orchard-Modules的入门教程.在这个教程里,我们将开发两个功能页面分别用于数据录入与数据展示. 完成上述简单功能开发,我们一共需要6个步骤.分别为: 创建Module 创建Mode ...
- Searching in a Radius using Postgres[Marked]
Searching in a Radius using Postgres Creating a GEO application has never been easier. You can have ...
- 规约模式(Specification Pattern)
一.引言 最近在看一个项目的源码时(DDD),对里面的一些设计思想和设计思路有了一些疑问.当看到(Repository层)中使用了 spec.SatisfiedBy() 时,感觉有点懵.于是在项目中搜 ...
- 【原创】Odoo开发文档学习之:ORM API接口(ORM API)(边Google翻译边学习)
官方ORM API开发文档:https://www.odoo.com/documentation/10.0/reference/orm.html Recordsets(记录集) New in vers ...
- Synthesis of memory barriers
A framework is provided for automatic inference of memory fences in concurrent programs. A method is ...
随机推荐
- C99中的变长数组(VLA)
处理二维数组的函数有一处可能不太容易理解,数组的行可以在函数调用的时候传递,但是数组的列却只能被预置在函数内部.例如下面这样的定义: #define COLS 4 int sum3d(int ar[] ...
- python nose测试框架全面介绍一
一.简介 nose 是python自带框架unttest的扩展,使测试更简单高效:nose是一个开源的项目,可以在官网上下载源码 1.快速安装 有以下几中安装方式: easy_install ...
- wpgcms---碎片管理的使用
这里很神奇的是碎片管理是编辑器,所以拿到的配置都是富文本,所以在前台作为字段来使用的时候,需要过滤掉字符串. 具体示例: {% set qq = wpg.fragment.get("qq&q ...
- POJ-2018 Best Cow Fences(二分加DP)
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10174 Accepted: 3294 Desc ...
- 洛谷P2564 生日礼物【单调队列】
题目背景 四川2009NOI省选 题目描述 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可 ...
- 2.2RNN
RNN RNN无法回忆起长久的记忆 LSTM (long short Term memory长短期记忆)解决梯度消失或弥散vanishing 和梯度爆炸explosion 0.9*n-->0 ...
- 计蒜客 30996 - Lpl and Energy-saving Lamps - [线段树][2018ICPC南京网络预赛G题]
题目链接:https://nanti.jisuanke.com/t/30996 During tea-drinking, princess, amongst other things, asked w ...
- Oracle Function:TO_CHAR
Description The Oracle/PLSQL TO_CHAR function converts a number or date to a string.将数字转换为日期或字符串 Syn ...
- textField placeholder颜色,位置设置
自定义textField继承自UITextField 重写 - (CGRect)placeholderRectForBounds:(CGRect)bounds _phoneTF.font = HPFo ...
- 洛谷P1494小Z的袜子 [国家集训队] 莫队
正解:莫队 解题报告: 这是,传送门qwq 昂大概是莫队板子题? 首先可以推出来答案是(∑C(2,color[i]))/C(2,r-l+1)趴?挺显然的不解释了qwq 然后显然除数直接做就成,考虑怎么 ...