我有一个小部件仪表板应用程序,其中使用组件帮助程序显示各个小部件。模板最终看起来像这样:
<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>
。
我是否对旧行为有误?如果没有,有没有办法让这项工作成为现实?
P.S。我无法在任何地方找到组件助手的文档。那是在ember.js网站上吗?
编辑:开发人员错误...我的小工具模板的路径与我的小部件代码的命名方式不同(复数)。例如:我的模板是app/templates/components/widgets/categories/widget.hbs
,但我的小部件代码是app/components/widgets/category/widget.js
。因为Ember默认在那里插入组件代码,所以没有抛出错误。如果我在另一个方向犯了错误,就会抛出错误。