Ember Handlebars不会自动将模型放在范围内 [英] Ember Handlebars not automatically putting model in scope

查看:155
本文介绍了Ember Handlebars不会自动将模型放在范围内的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通常,在渲染句柄模板时,Ember会自动将路线的模型放在范围内:

 < h1> {{title }}< / H1> 

Renders:

 code>< h1>我的标题< / h1> 

由于某种原因,它并没有为我使用特定的路由。我只是得到一个空的< h1>< / h1> 。但是,如果我手动将其放在范围内:

 < h1> {{model.title}}< / h1> 

然后它按预期工作。什么可能导致这种行为?我的路线是基本的:

  MeetingsShowRoute = Ember.Route.extend 
model:(params) - >
@ store.find('meeting',params.id)

`export default MeetingsShowRoute`

相关视图和控制器都为空。

解决方案

您的控制器可能会扩展控制器类,当它应该是扩展对象控制器。

  MeetingsShowController = Ember.ObjectController.extend ... 


无模型支持的控制器



  FooControler = Ember.Controller.extend 



单模型支持控制器



  FooControler = Ember.ObjectController.extend 



集合模型支持控制器



  FooControler = Ember.ArrayController.extend 


Typically, Ember automatically puts the route's model in scope when rendering a handlebars template:

<h1>{{ title }}</h1>

Renders:

<h1>My Title</h1>

For some reason, it's not doing that for me with a particular route. I'm just getting an empty <h1></h1>. However, if I manually put it into scope:

<h1>{{ model.title }}</h1>

Then it works as expected. What might be causing this behavior? My route is basic:

MeetingsShowRoute = Ember.Route.extend
  model: (params) ->
    @store.find('meeting', params.id)

`export default MeetingsShowRoute`

And both the relevant view and controller is empty.

解决方案

Your controller is probably extending the controller class, when it should be extending object controller.

MeetingsShowController = Ember.ObjectController.extend ...

Rule of thumb:

No Model backed controller

FooControler = Ember.Controller.extend

Single Model backed controller

FooControler = Ember.ObjectController.extend

Collection Model backed controller

FooControler = Ember.ArrayController.extend

这篇关于Ember Handlebars不会自动将模型放在范围内的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆