如何为表单输入设置自定义元素id ?例如,我想有前缀或后缀的id。这是我得到的:
// views/extended-input.js
var suffix = function(key) {
return function() {
var result = this.get(key) + '_' + this.get('suffix');
console.log('xxx: ' + result);
return result;
}.property(key, 'suffix');
};
export default Ember.TextField.extend({
attributeBindings: ['id'],
suffix: 'from',
id: suffix('customId')
});
an in HBS模板
{{view 'extended-input' customId=field.name suffix='from'}}
…但渲染后输入仍然有ID属性设置为生成烬。这是可悲的,因为我期望attributeBinding将id更改为带有版本后缀的。
知道为什么吗?我哪里错了?有人能给我其他可行的解吗?
尝试将id替换为elementId,没有属性绑定。这是假设field.name永远不会改变。
问题是,如果变量和元素的唯一的、静态的、自我标识的ID属性之间有一个动态绑定,ember就会混淆(就像其他任何东西一样),所以要小心这样做。
您也可以尝试classNameBindings,这可能更合适,特别是如果field.name确实改变了。