【问题标题】:Dynamic segments for route on index in emberember 索引中路由的动态段
【发布时间】:2015-08-19 19:50:27
【问题描述】:

当我尝试在 Ember 应用程序中访问 URL“/posts”时出现错误。我收到以下错误:

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;

我用来访问 /posts 的链接:

{{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 上创建最小示例。

【问题讨论】:

    标签: ember.js


    【解决方案1】:

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

    【讨论】:

    • 嗯,好的。您应该将您的答案标记为正确答案,以便人们在找到此页面时看到它。
    【解决方案2】:

    您应该使用{{link-to 'posts'}} 而不是{{link-to 'Posts' 'posts'}},因为posts 路由中没有动态段。

    【讨论】:

    • 我使用 link-to 作为内联助手,所以第一个参数只是 'a' 元素的文本,第二个是路由的名称。根据 ember 网站上的文档 guides.emberjs.com/v1.13.0/templates/links 这是可能的。所以链接应该没问题。
    • 您是否尝试在浏览器中输入帖子网址?成功了吗?
    • 问题中描述的内联助手应该可以工作 - 这里是Ember JSBin。您是否在 PostsRou​​te 中进行任何类型的重定向或替换或 URL?你也可以发布 PostsRou​​te 或在 JSBin 中重现错误吗?
    • 我已经用新信息更新了我的问题 - 问题可能与我的模型有关,此外,当我回到家(几个小时)时,我将在 ember jsBin 上创建一些最小示例。
    • 不幸的是,我无法在 ember jsbin 中重现它,我无法创建该项目具体部分的精确但缩小的副本。嗯...我会进一步搜索...
    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多