ember中索引路由的动态段

时间:2015-08-19 19:50:28

标签: ember.js

当我尝试访问网址时出现错误" / 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上创建最小的例子。

2 个答案:

答案 0 :(得分:0)

最后这是一个愚蠢的拼写错误 - 从错误信息,我专注于索引的模型和路线,忘记了模板本身。有一个"每个"迭代器,我正在创建一个链接到帖子的详细信息,并且在链接中有一个拼写错误,我有" {{#link-to" posts"交}}"而不是" {{#link-to" posts.show"交}}"

答案 1 :(得分:-1)

您应该使用{{link-to 'posts'}}代替{{link-to 'Posts' 'posts'}},因为您在posts路线中没有动态细分。