我正在设计一个库,我希望允许用户提供他们可能喜欢的任何data
属性。
{{my-component data-type='hello' data-name='world'}}
我不能提前知道他们可能想要绑定哪些data
属性,因此无法将它们添加到attributeBindings
数组中。
有解决方法吗?
答案 0 :(得分:2)
使用组件的didReceiveAttrs(params){
let newAttrs = params.newAttrs;
let attributeBindings = Ember.A();
Object.keys(newAttrs).forEach((attr)=>{
if(attr.indexOf('data-')>= 0){
attributeBindings.pushObject(attr);
}
});
this.set('attributeBindings', attributeBindings);
}
挂钩:
didReceiveAttrs
弃用后更新:
由于不推荐didReceiveAttrs(){
let attributeBindings = Ember.A();
Object.keys(this).forEach((attr)=>{
if(attr.indexOf('data-')>= 0){
attributeBindings.pushObject(attr);
}
});
this.set('attributeBindings', attributeBindings);
}
函数的参数,您需要更改代码如下:
0 0 10,15/12 * * ?
请参阅Sample twiddle。
答案 1 :(得分:0)
我想在v3.10之后,您可以do this without any hacks进行尖括号调用(如果需要,可以进一步使用...attributes
进行传递)。所以在我最简单的情况下,它就像
<MyComponent data-aaa="bbb"/>