【问题标题】:Displaying an object stored in a view property (Ember.js)显示存储在视图属性中的对象 (Ember.js)
【发布时间】:2013-09-26 00:39:16
【问题描述】:

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

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>

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

【问题讨论】:

    标签: javascript ember.js emblem.js


    【解决方案1】:

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

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

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

    所以当这些属性之一发生变化时,显示视图将被更新。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        Whistlr.AuthRegisterView
        

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

        view Whistlr.AuthRegisterView
        

        view view.content
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-18
          • 1970-01-01
          相关资源
          最近更新 更多