0

如何为表单输入设置自定义元素 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 模板

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

...但是在渲染输入之后仍然有 ID 属性设置为使用 ember 生成。这很可悲,因为我预计 attributeBinding 会将 id 更改为以版本为后缀。

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

4

1 回答 1

0

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

问题是,如果变量和元素的所谓唯一、静态、自我识别 ID 属性之间存在动态绑定,则 ember 会变得混乱(就像其他任何东西一样),所以要小心这样做。

您也可以尝试使用 classNameBindings,可能更合适,尤其是在 field.name 确实发生变化的情况下。

于 2014-06-05T04:39:42.820 回答