如何访问控制器中的参数ember.js

时间:2017-01-09 12:34:35

标签: ember.js

这是我的router.js代码。

this.route('contact',{'path': '/contact/:chat_id'});

这是我的route.js代码。

model(params) {

  return this.store.findRecord("chat", params.chat_id)
},

这是我的controller.js代码,我可以像这样使用。它将错误显示为空值 请帮我。如何在控制器中使用params

recordChat: function() {

  var chat = this.get(params.chat_id)

  Ember.RSVP.hash({
    offer_id: chat,
  })
}

3 个答案:

答案 0 :(得分:6)

我认为最简单的答案是在路由中创建变量然后在setupController中设置它:

<强> your_route.js

export default Ember.Route.extend({
  model(params) {
    this.set('myParam',params.my_Params);

    // Do Model Stuff...
  },
  setupController(controller, model) {
    // Call _super for default behavior
    this._super(controller, model);
    // Implement your custom setup after
    controller.set('myParam', this.get('myParam'));
  }
});

答案 1 :(得分:2)

在你的route.js中,你需要像这样调用setupController函数:

select max(order_date) from orders

现在您可以通过调用以下方式在控制器中访问它:

setupController(controller, model) {
    this._super(...arguments);
    controller.set('chat', model);
}

<强>更新

请参阅此处twiddle

答案 2 :(得分:0)

我认为你可以从模型中获取你想要的id,因为你使用参数chat_id来查找记录,而id现在是聊天对象的一部分(这是路由模型本身)。

所以,在你的控制器中你只需要这样做:this.get('model')。id