Ember & Ember数据:如何将多个动态段与多个模型一起使用

Ember & ember data: How to use multiple dynamic segments with multiple models?

本文关键字:Ember 动态 模型 一起 amp 数据      更新时间:2023-09-26

我正在尝试使用余烬和余烬数据构建一个 github 问题跟踪器。github API 可通过节点服务器访问(并且工作正常(,但我在尝试使用 ember 的动态段时遇到问题,并且我不确定构建路由和模型的最佳方式。

如果我希望/user/repo/issue网址,我应该如何构建我的路线和模型?

我已经尝试了动态细分和资源/路线的所有不同组合......

this.resource('user', {path: ':user'}, function(){
  this.resource('repo', {path: ':repo'}, function(){
    this.resource('issue', {path: ':issue_id'});
  });
}); // 1
this.resource('repo', {path: ':userAndRepo'}, function(){
  this.resource('issue', {path: ':issue_id'});
}); // 2
this.resource('repo', {path: ':userAndRepo'});
this.resource('issue', {path: ':userAndRepo/:issue_id'}); //3

但我似乎无法让它顺利工作。我扯着胡子试图理解它。

我得到的最接近的是有一个:userAndRepo的组合段,但对于我在问题模板中的任何链接,我必须在IssuesController上明确设置该模型,以便我的链接到{{#link-to 'issues' userAndRepo issue}}此外,每次我从子issue路由移回父repo路由时,我的 API 都会受到攻击。

任何想法或建议将不胜感激。抱歉,如果我没有很好地解释自己。

数字 1 是正确的实现。 这是一个包含嵌套资源的简单示例(我很懒惰,只是使用了 pojos,但您可以看到何时命中模型钩子(。

http://emberjs.jsbin.com/EWogUdE/36/edit

http://emberjs.jsbin.com/EWogUdE/36#/

 App.Router.map(function () {
   this.resource('people', function(){
     this.resource('person', {path:':name'}, function(){
       this.resource('dog', {path:':dogname'});
     });
   });
 });