设置文本字段的自定义ID

时间:2014-06-03 18:11:44

标签: ember.js ember.js-view

如何为表单输入设置自定义元素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')
});

in hbs template

{{view 'extended-input' customId=field.name suffix='from'}}

...但是渲染输入后仍然具有设置为使用ember生成的ID属性。这很难过,因为我预期attributeBinding会将id更改为带有版本的后缀。

任何想法为什么?我哪里错了?任何人都可以给我其他工作解决方案吗?

1 个答案:

答案 0 :(得分:0)

尝试使用elementId而不是id,没有属性绑定。假设field.name永远不会改变。

问题在于,如果变量与元素之间存在动态绑定,即所谓的唯一,静态,自识别ID属性,那么ember会让所有人感到困惑(就像其他任何事情一样),所以要小心这样做。

您也可以尝试使用classNameBindings,这可能更合适,特别是如果field.name确实发生了变化。