Data binding 将硬编码参数传递给ember.js中的视图
我试图显示一个在ember.js中创建的简单通用datatable视图 我想像这样将这些列传递给它:Data binding 将硬编码参数传递给ember.js中的视图,data-binding,ember.js,Data Binding,Ember.js,我试图显示一个在ember.js中创建的简单通用datatable视图 我想像这样将这些列传递给它: App.MyDatatableView columnsBindings="['col1','col2']" }} App.MyDatatableView = Ember.View.extend({ templateName : 'datatable', attributeBindings: ['columns'], columns : [] }); 或: 但两者都不起
App.MyDatatableView columnsBindings="['col1','col2']" }}
App.MyDatatableView = Ember.View.extend({
templateName : 'datatable',
attributeBindings: ['columns'],
columns : []
});
或:
但两者都不起作用。在这两种情况下,我的columns属性都是“未定义”
我的观点是这样的:
App.MyDatatableView columnsBindings="['col1','col2']" }}
App.MyDatatableView = Ember.View.extend({
templateName : 'datatable',
attributeBindings: ['columns'],
columns : []
});
我的另一个选择是必须从视图继承,但是如果您可以只在Handlebar模板中传递值,那就更好了
谢谢你的帮助,
JasonHandlebar不支持将数组传递到绑定。您需要传入保存这些列值的属性。例如,在控制器使用中
App.MyController = Ember.Controller.extend({
columns: function() {
return ['col1', 'col2'];
}.property()
});
然后可以在模板中使用此列
属性,如
{{MyDatatableView columnsBindings=columns}}
编辑:车把辅助对象。
handlebars视图帮助器可以解析计算属性中的列字符串。对于复杂的解析,您也可以使用JSON.parse
,该示例只是在逗号上拆分
佣工注册
Ember.Handlebars.helper('MyDatatableView', App.MyDatatableView);
具有cols
computed属性的相应视图
App.MyDatatableView = Ember.View.extend({
cols: function() {
return this.get('columns').split(',');
}.property('columns'),
didInsertElement: function() {
console.log('didInsertElement', this.get('cols'));
}
});
在模板中使用辅助对象
{{MyDatatableView columns="col1,col2"}}
我明白了,谢谢。传递字符串并使用JSON.parse()怎么样?我不喜欢仅仅为了传递一些信息而创建一个对象。我想,您可以在定制的Handlebar助手中使用
JSON.parse
。嗯,您知道如何轻松地扩展视图助手吗?因为我只需要添加这个功能