我通过从 ember 指南页面扩展示例博客应用程序来学习 ember 和 ember 数据,并且在实施用于添加新博客条目的“新”路线时遇到了一些困难。我正在使用 Parse 的 ember 数据适配器来保存数据。我已经成功连接到 Parse 并且可以查询和更新 Parse 中的记录。我创建了一个“新”路线并且可以创建一个新帖子,但我有两个问题:
1)我的新帖子路由在 Parse 上添加了帖子,但在保存后不会重定向回帖子路由。它给了我错误“未捕获的错误:断言失败:无法在未定义的对象上调用带有'id'的get。”。我尝试了 transitionTo('posts.post') 和其他选项的变体,但对于如何重定向回新帖子的帖子详细信息感到困惑。这是我的 PostsNewRoute:
App.PostsNewRoute = Ember.Route.extend({
model: function() {
return App.Post.createRecord();
},
events: {
createPost: function() {
this.get('store').commit();
this.transitionTo('post');
}
}
});
2) 只要我输入新帖子的标题,它就会显示在帖子列表中,就像示例应用程序一样。但是,当我单击创建时,它会保留要解析的记录,然后也将解析记录添加到列表中。添加的第一个帖子的 ID 为空,第二个重复帖子的帖子 ID 来自 Parse。如果我单击第二个重复帖子,它会准确显示我想要的内容,即帖子详细信息视图中的新帖子。如何摆脱列表中的重复帖子,以及如何让重定向直接进入新帖子的详细信息?作为参考,我的路由器在下面
App.Router.map(function() {
this.resource('posts', function() {
this.resource('post', { path: ':post_id'});
this.route('new')
});
this.resource('about');
});