0

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

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>

我怎样才能让它实际呈现对象,而不是代表对象的字符串?

4

3 回答 3

1

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

我建议您显示您希望显示的每个属性:

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

因此,当这些属性之一发生更改时,显示视图将被更新。

于 2013-09-25T00:20:44.903 回答
1

你也可以在这个对象中定义自己的 toString 方法

于 2013-09-25T10:12:23.960 回答
0

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

Whistlr.AuthRegisterView

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

view Whistlr.AuthRegisterView

或者

view view.content
于 2013-09-25T16:39:16.597 回答