2
我正试图将我的头围绕Ember在这一刻,但所有的魔法都使这个困难。详细记录在Ember
我设置LOG_TRANSITIONS: true
和Ember.LOG_BINDINGS = true;
这给了我一些最起码的日志记录到控制台,但我真的需要不止于此。
当Ember自动创建控制器,视图和模板时,我特别努力看到发生了什么。
有没有一种方法可以记录框架的这个方面 - 看看Ember在模板/视图/控制器中寻找的位置以及它自己创建的位置。
例如,我有以下的路线设置:
App.Router.map(function() {
this.route("example_items", {path: "/"});
});
有:
App.ExampleItemsRoute = Ember.Route.extend({
model: function() {
return App.ExampleItem.find();
}
});
灰烬使我的ApplicationController及其application.handlebars
模板:
<header class="page-header">
<h1>Application Template</h1>
</header>
{{outlet}}
但未能呈现我的example_items.handlebars
模板。我没有得到任何例外或警告,如果我检查了DOM,我可以看到烬创建了一个通用的视图。
绑定日志记录显示Ember已转换为example_items
,但它似乎没有使用过我的ExampleItemsController,ExampleItemsView或模板。
如果我没有收到任何错误或消息,我该如何调试这种情况?
编辑:
App.ExampleItems查看:
App.ExampleItemsView = Ember.CollectionView.extend({
templateName: 'example_items'
});
而且App.ExampleItemsController:
App.ExampleItemsController = Ember.ArrayController.extend({
});
你的意思是用example_items.template什么? 你使用预编译视图还是
这是你的问题:
CollectionView
不会将您的模板。它需要一个数组作为其content
属性(通常设置为绑定到控制器)并手动创建childViews。如果没有设置content
,它将显示为空白视图。如果您将
classNames: ['my-view']
添加到您的视图定义中,您应该看到它实例化和插入的视图实际上是您的视图类,只是空的。添加contentBinding: 'controller'
,它也应该为数组中的每个项目呈现itemViews。来源
2013-03-23 19:19:28
谢谢。你是对的。在这个例子中,我误解了ArrayView的目的,但是我很难理解Ember正在做什么。 – Undistraction
同意。这是可选日志的主要候选者。要求改进的github问题不会成为失败。 –