灰烬& ember数据:如何使用多个模型的多个动态段?

时间:2013-10-05 22:47:20

标签: javascript ember.js ember-data

我正在尝试使用ember和ember数据构建一个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 个答案:

答案 0 :(得分:0)

数字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'});
     });
   });
 });