它是一个漫长的一天,这可能非常简单,但我如何添加一个名称属性到Ember.TextField?将名称属性添加到Ember.TextField?
我想要做这样的事情:
{view Ember.TextField valueBinding="your_name" placeholder="Your name" name="your_name"}}
这适用于占位符,但忽略了名。
任何想法??
感谢 里克
它是一个漫长的一天,这可能非常简单,但我如何添加一个名称属性到Ember.TextField?将名称属性添加到Ember.TextField?
我想要做这样的事情:
{view Ember.TextField valueBinding="your_name" placeholder="Your name" name="your_name"}}
这适用于占位符,但忽略了名。
任何想法??
感谢 里克
name属性默认情况下不限制,see
作为一种变通方法,您可以创建自己的TextField
,看到http://jsfiddle.net/fkPzr/
App.TextField = Ember.TextField.extend({
init: function() {
this._super();
// get attributeBindings and add 'name'
var attributeBindings = this.get('attributeBindings');
attributeBindings.pushObject('name');
this.set('attributeBindings', attributeBindings);
}
});
UPDATE:
由于attributeBindings
被声明为concatenated property * TextField的可以被简化,参见http://jsfiddle.net/cRhcg/:
App.TextField = Ember.TextField.extend({
attributeBindings: ['name']
});
*级联属性不覆盖延长的对象的属性,但是从超对象的现有值被级联。说得通?这是一个example
它不起作用,因为Ember.TextField不公开此属性绑定。
从Ember.TextField
attributeBindings: ['type', 'value', 'size'],
加上从混入的那些:
attributeBindings: ['placeholder', 'disabled', 'maxlength'],
要绑定的name属性,创建自己的子类,增加了 '名' 的属性绑定
对不起,@ pangratz更快:) – 2012-03-27 17:56:32
如果你简单地想要指定一个名称属性的选项,你可以使用attributeBindings来完成。
{view Ember.TextField valueBinding="your_name" placeholder="Your name" attributeBindings="name" name="your_name"}}
不允许通过Handlebars设置'attributeBindings',请参阅https://github.com/emberjs/ember.js/blob/c524f3e91/d3c3dfa0b9a95d0c8fbf4dc199b4ac3/packages/ember-handlebars/lib/helpers /view.js#L44-48 – pangratz 2012-03-28 09:25:22
这将解决您的问题。 但是,我建议不要这样做。 ember背后的想法是将诸如此类的信息保存在DOM之外。
Ember.TextField.reopen({
attributeBindings: ['name']
});
非常感谢pangratz。 Surley这应该是默认的,因为你需要名称进行测试? – 2012-03-28 09:06:02
谢谢pangratz!我有同样的问题! +1 – Dragan 2014-02-12 12:49:45