【问题标题】:Emberjs nested route index paramaterEmber Js 嵌套路由索引参数
【发布时间】:2015-04-22 04:55:50
【问题描述】:

如何从我创建的索引路由中访问params 字段。

这是我的路由器。

export default Router.map(function() {
  this.resource('posts', function() {
    this.resource('posts.post', {path: ':id'}, function(){
      ...
      ...
      ...
    });
  });
});

当我转到 /posts/1 并查看 ember 检查器的视图树时,我看到路由 posts.postposts.post.index 都有 {id: '1'} 用于它们的模型。

posts.post 路由中,我可以执行以下操作:

export default Ember.Route.extend({
  model: function(params){
    console.log('params.id = ' + params.id);
  },
});

这会打印到控制台params.id = 1

但是,当我在 posts.post.index 路由中运行相同的代码时; params.idundefined。事实上,如果我运行JSON.stringify(params),它是空的。

如何访问params 表单posts.post.index 路由。理想情况下,我不想从posts.post 路由访问params

任何帮助将不胜感激。

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    您可以通过this.modelFor('posts.post')获取另一条路线的模型。

    请注意,动态路段仅适用于定义它们的路线。想要从不同的路线访问它们是一种难闻的气味。

    【讨论】:

    • 但是当我去/posts/1posts.postposts.post.index 路由时,如果我没有为两条路由定义模型,怎么会在余烬检查器中显示{id:1}。这是否意味着我可以访问参数,即使来自posts.post.index
    • 我最终将模型设置在 posts.post 路线上。所有子路由(例如posts.post.index)都可以访问模型。所以不需要在子路由上定义模型。
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多