我有一个小部件仪表板应用程序,其中使用组件助手显示各个小部件。模板最终看起来像这样:
<div class="panel panel-default">
<div class="panel-body">
{{component model.displayComponent model=model}}
</div>
</div>
一个Widget
实例将返回类似的路径displayComponent
:widgets/category/specific-widget
。
在 Ember 2.1 中,我发现组件上定义的attributeBindings
和classBindings
没有被应用。我认为它们在 Ember 1.13 中被应用了。
换句话说,在 1.13 中考虑一个这样定义的组件:
// app/components/widgets/category/specific-widget.js
export default Ember.Component.extend({
model: null,
classNames: [ 'widget-content' ],
attributeBindings: [ 'style:style' ],
style: Ember.computed.readOnly('model.contentHeight')
});
我会得到一个<div id="ember..." style="height:300px" class="ember-view widget-content">...</div>
. 现在我只是得到默认的<div id="ember..." class="ember-view">...</div>
.
我对旧的行为有误解吗?如果没有,有没有办法让这项工作成为旧方式?
PS 我无法在任何地方找到组件助手的文档。那是在 ember.js 网站上吗?
编辑:开发人员错误...我的小部件模板的路径与我的小部件代码不同(复数)。例如:我的模板是,app/templates/components/widgets/categories/widget.hbs
但我的小部件代码是app/components/widgets/category/widget.js
. 因为 Ember 默认在里面插入了一个组件代码,所以没有抛出错误。如果我在另一个方向犯了错误,就会抛出错误。