返回介绍

模型 - 创建和删除记录

发布于 2020-02-21 15:48:03 字数 1731 浏览 937 评论 0 收藏 0

英文原文:http://emberjs.com/guides/models/creating-and-deleting-records/

通过调用仓库的createRecord方法,可以创建记录:

1
2
3
4
store.createRecord('post', {
  title: 'Rails is Omakase',
  body: 'Lorem ipsum'
});

仓库对象在控制器和路由中都可以通过this.store来访问。

尽管createRecord的使用已经非常直接,但是还需要注意一点,就是目前还不支持将一个承诺赋值给一个关联。

例如,如果希望给文章设置author属性,如果指定ID的user并没有加载到仓库中的话,下面的代码将不会正常工作。

1
2
3
4
5
6
7
var store = this.store;

store.createRecord('post', {
  title: 'Rails is Omakase',
  body: 'Lorem ipsum',
  author: store.find('user', 1)
});

不过在承诺履行时可以非常方便的进行关联关系的设置:

1
2
3
4
5
6
7
8
9
10
var store = this.store;

var post = store.createRecord('post', {
  title: 'Rails is Omakase',
  body: 'Lorem ipsum'
});

store.find('user', 1).then(function(user) {
  post.set('author', user);
});

删除记录

删除记录与创建记录一样简单。只需要调用DS.Model实例的deleteRecord()方法即可。这将会吧记录标记为isDeleted,并且不在storeall()查询中返回。删除操作之后会通过使用save()来进行持久化。此外,也可以使用destroyRecord来将删除和持久化一次完成。

1
2
3
4
5
6
7
8
var post = store.find('post', 1);
post.deleteRecord();
post.get('isDeleted'); // => true
post.save(); // => DELETE to /posts/1

// OR
var post = store.find('post', 2);
post.destroyRecord(); // => DELETE to /posts/2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文