Ember.js 如何调试丢失的视图

Ember.js 如何调试丢失的视图,ember.js,Ember.js,从我的路由器,我正在渲染一个视图: App.MonthSummaryRoute = Ember.Route.extend({ events: { selectTab: function(name) { this.render(name, { into: 'month/summary', outlet: 'tab' }); } } }); 例如,名称为“summaryCompany”。如果我加上 <script typ

从我的路由器,我正在渲染一个视图:

App.MonthSummaryRoute = Ember.Route.extend({
    events: {
        selectTab: function(name) {
            this.render(name, { into: 'month/summary', outlet: 'tab' });
        }
    }
});
例如,名称为
“summaryCompany”
。如果我加上

<script type="text/x-handlebars" data-template-name="summaryCompany">
    <h2>Test template</h2>
</script>

我什么也得不到。我遗漏了什么?

您可以提供您的全部代码选择,或者JSBin/JSFIDLE吗

可能的办法:

  • 您的
    月份/摘要
    模板/路线/视图中有什么内容
  • 可能您无法从事件中调用
    render
    。如果不是从内部
    selectTab
    进行渲染,而是从路由的
    renderTemplate
    挂钩进行渲染,会发生什么情况?
    renderTemplate:function(){this.render(“summaryCompanyView”,{into:'month/summary',outlet:'tab'})}
  • 您可以尝试查看是否插入了视图:在web inspector中,找到与视图相对应的div的ember id(类似于
    ,然后通过
    ember.Views.Views.ember310
    (或任何id)访问实际的视图对象。您可以检查视图的类,查看它是
    App.SummaryCompanyView
    还是通用
    Ember.view
  • 最后,如果删除内联模板并通过
    templateName
    在视图对象上指定模板,会发生什么情况

  • 您有一个打字错误(一个错位的
    )在您的视图末尾,这可能是问题所在吗?不,这只是个问题。谢谢。我想#2是我需要的…如何获取类的名称?我正在查看
    Ember.view.views.ember310
    对象的属性,但我迷路了。现在我真的很困惑…我制作了一个JSBin,它成功了。所以我开始部分地添加回来从我的主应用程序,它仍然有效。我不知道如何调试它!
    SummaryCompanyView
    根本没有被ember拾取。如果我删除它,没有任何更改;如果我添加
    templateName
    没有任何更改。可能是什么?得到了。我已将该类复制到另一个文件,但忘记更改名称,所以它被删除了覆盖。那太痛苦了。不过,很好的提示,谢谢!@SamSelikoff有时这是显而易见的事情!至于你的问题,为了得到视图的类,我只需检查
    Ember.view.views.ember310.constructor
    。有点黑客,但它很有效。我在开发过程中经常检查视图,所以我通常会写一篇帮助文章r viewFromId函数。
    App.SummaryCompanyView = Ember.View.extend({
        didInsertElement: function() {
          console.log('here');
        }
    });