嵌套资源中的Ember操作

时间:2014-07-09 01:11:48

标签: ember.js controller nested-routes

我试图在Ember的Publishables的嵌套路线中添加一些操作:

Router.map(function() {
  this.resource('publishables', {path: '/publishables'}, function() {
    this.resource('publishable', { path: ':publishable_id' });
  });
});

export default Router;

Publishables路线:

export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('publishable', { page: params.page });
  }
});

Publishables型号:

export default DS.Model.extend({
  title: DS.attr(),
  description: DS.attr(),

  authors: DS.hasMany('author', { async: true }),
  category: DS.belongsTo('category', { async: true }),

  published: DS.attr(),
  publish_from: DS.attr(),
  slug: DS.attr(),

  contentType: DS.attr()
});

Publishables控制器:

export default Ember.ArrayController.extend({

  actions : {
    preview: function(id) {
      this.transitionToRoute('publishable', id);
    }
  }

});

Publishables模板:

<h2>Publishables</h2>
{{#each}}
  <p {{action "preview" id}}>{{title}}</p>
{{/each}}

{{outlet}}

这非常有用。如果我点击{{title}},它会转换为publishable/:id,相应的数据会加载到{{outlet}}

现在我想向Publishable添加一些操作。如果我像Publishable控制器那样创建一个Publishables控制器,那么一切都会中断。我认为这是因为PublishablePublishables的孩子。任何人都可以指导我如何在嵌套路线中获取动作?

0 个答案:

没有答案