0

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

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>

此模板显示。但我尝试添加一个视图来处理事件:

App.SummaryCompanyView = Ember.View.extend({
    didInsertElement: function() {
      console.log('here');
    }
});

我什么也没得到。我错过了什么?

4

1 回答 1

1

您能否提供您的整个代码选择,或 JSBin / JSFiddle?

可能的方法:

  1. 您的month/summary模板/路线/视图中有什么?
  2. 也许你不能render从一个事件中调用。如果不是从内部进行渲染,selectTab而是从路由的renderTemplate钩子中进行渲染,会发生什么? renderTemplate: function() { this.render("summaryCompanyView", { into: 'month/summary', outlet: 'tab' }); }
  3. 您可以尝试查看是否完全插入了视图:在网络检查器中,找到与视图对应的 div 的 ember-id(类似<div id="ember310" ...>,然后通过(或任何 id)访问实际的视图对象 Ember.Views.views.ember310。您可以检查视图的类看看它是App.SummaryCompanyView不是通用的Ember.View
  4. 最后,如果您删除内联模板并通过在 View 对象上指定模板会发生什么templateName
于 2013-08-01T00:25:19.017 回答