当我尝试访问网址时出现错误" / posts"在我的Ember应用程序中。我收到以下错误:
Uncaught Error: More context objects were passed than there are dynamic segments for the route: posts.index
这真是令人费解,因为索引没有动态细分,我的路线看起来像这样:
Router.map(function() {
this.route('posts', function() {
this.route('new');
this.route('show', {
path: ':post_id'
});
});
});
模型的一部分(models / posts.js):
import DS from 'ember-data';
let Post = DS.Model.extend({
title: DS.attr('string'),
author: DS.attr('string'),
content: DS.attr('string')
});
Post.reopenClass({
FIXTURES: [
{
id: 1,
title: "Random text",
author: "Someone new",
content: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laudantium aspernatur quam qui commodi beatae placeat ducimus aliquam veritatis ullam sed! Sit assumenda aspernatur sunt harum accusamus, repellat labore! Repellendus, corporis!"
}
]
});
export default Post;
我用来访问/发布的链接:
{{link-to 'Posts' 'posts'}}
其他信息:我使用的是ember-cli-cordova,所以我的environment.js包含" defaultLocationType:' auto'"我也在使用灯具,所以我有一个以下适配器:
export default DS.FixtureAdapter.extend({
host: config.apiUrl
});
有人看到会导致错误的任何问题吗?提前谢谢。
编辑:
我的帖子路线(routes / posts / index.js)如下所示:
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.findAll('post');
}
});
当我注释掉我从商店获取数据的行时,一切正常,所以它看起来问题在某种程度上与灯具的使用有关。当我回到家时,我会尝试在ember jsBin上创建最小的例子。
答案 0 :(得分:0)
最后这是一个愚蠢的拼写错误 - 从错误信息,我专注于索引的模型和路线,忘记了模板本身。有一个"每个"迭代器,我正在创建一个链接到帖子的详细信息,并且在链接中有一个拼写错误,我有" {{#link-to" posts"交}}"而不是" {{#link-to" posts.show"交}}"
答案 1 :(得分:-1)
您应该使用{{link-to 'posts'}}
代替{{link-to 'Posts' 'posts'}}
,因为您在posts
路线中没有动态细分。