显示存储在视图属性中的对象(Ember.js)

时间:2013-09-24 22:42:23

标签: javascript ember.js emblem.js

我有一个包含多个属性的视图,包括一个我想要包含一个对象的属性。视图如下所示:

Whistlr.LightboxView = Em.View.extend
  templateName: 'lightbox'
  classNames: ['ember-lightbox']
  content: ""

content是我想要包含对象的属性。我像这样设置对象:

lightbox = Ember.View.views[$(".ember-lightbox").attr('id')]
lightbox.set 'content', Whistlr.AuthRegisterView.create()

据我所知,对象设置正确。但是,当我尝试像这样显示它时:

#lightbox
  view.content

浏览器会显示此信息:

<Whistlr.AuthRegisterView:ember364>

如何让它实际呈现对象,而不是表示对象的字符串?

3 个答案:

答案 0 :(得分:1)

这是预期的行为,因为这是toString所有ember类的基类提供的默认Ember.Object

我建议您展示您想要显示的每个属性:

#lightbox
  view.content.login
  view.content.password

因此,当其中一个属性发生变化时,显示视图将会更新。

答案 1 :(得分:1)

您还可以在此对象中定义自己的toString方法

答案 2 :(得分:0)

看起来这是我使用Emblem.js的方式的怪癖。通常,我可以用简单的方式呈现视图:

Whistlr.AuthRegisterView

但是,在这种情况下,我必须明确声明我正在渲染视图,可能是因为视图已经转换为字符串。我现在可以使用它了:

view Whistlr.AuthRegisterView

view view.content