【问题标题】:Inspect Ember.js: Get the type of an object (Class)?检查 Ember.js:获取对象(类)的类型?
【发布时间】:2012-10-24 14:07:02
【问题描述】:

我经常使用console.log(),尤其是与Ember.inspect()结合使用。但我想念一件事:

如何找出对象(类)的类型?

例如:在检查 Ember.get("controller") 时得到类似 <Sandbox.ApplicationController:ember288> 的东西?

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    如果您只需要型号名称(例如app/models/comment.js 的型号名称为comment),您可以使用thing.constructor.modelName

    例如:

    var aComment = this.get('store').createRecord('comment');
    aComment.get('constructor.modelName') // => 'comment'
    

    【讨论】:

    • 这个。这就是我需要的。
    • 当我在模板中使用该字段时,我收到此错误:未捕获错误:您所做的事情导致视图在渲染后但在插入 DOM 之前重新渲染
    【解决方案2】:

    另一个有用的功能(在 chrome 中)是 dir 命令。

    dir(App.User)
    

    这将为您提供完整的对象信息,而不仅仅是名称。

    【讨论】:

      【解决方案3】:

      我知道您正在寻找一个用于调试目的的字符串,但我最初来这个问题是想具体了解如何获取对象的类型,而不是描述对象的字符串。

      使用内置的 Javascript 属性构造函数将产生用于构造实例的类。例如你可以这样做:

      person = App.Person.create();
      person.constructor // returns App.Person
      person.constructor.toString() // return "App.Person"
      

      【讨论】:

        【解决方案4】:

        如果你得到Class,你通常可以调用toString()(或者作为一个快捷方式连接一个空字符串+ '')来得到类似<Sandbox.ApplicationController:ember288>的东西

        【讨论】:

        • 正是我需要的!谢谢!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        • 2016-12-01
        • 1970-01-01
        相关资源
        最近更新 更多