Ember.js 绑定数据-输入辅助对象中的属性
如何在当前版本的Ember中绑定Ember.js 绑定数据-输入辅助对象中的属性,ember.js,Ember.js,如何在当前版本的Ember中绑定数据-属性作为输入助手 DEBUG: ------------------------------- DEBUG: Ember : 2.2.0 DEBUG: Ember Data : 2.2.1 DEBUG: jQuery : 1.11.3 DEBUG: Ember Simple Auth : 1.0.0 DEBUG: ------------------------------- 这是我的助手,但是数
数据-
属性作为输入
助手
DEBUG: -------------------------------
DEBUG: Ember : 2.2.0
DEBUG: Ember Data : 2.2.1
DEBUG: jQuery : 1.11.3
DEBUG: Ember Simple Auth : 1.0.0
DEBUG: -------------------------------
这是我的助手,但是数据-
属性被删除
{{input id="price-slider" name="title" type="text" value=model.price data-slider-id="ex1Slider" data-slider-min=model.minPrice data-slider-max=model.maxPrice data-slider-step=model.priceStep data-slider-value=model.price}}
默认情况下,不会传播数据属性。您可以重新打开TextField组件来传播您想要的所有数据属性,但请查看官方指南 或者,如果希望自动继承所有数据属性,则可以重新打开TextField组件或将其子类化,使其在默认情况下传播所有数据属性:
Ember.TextField.extend({
init: function() {
this._super();
var self = this;
Object.keys(this).forEach(function(key) {
if (key.substr(0, 5) === 'data-') {
self.get('attributeBindings').pushObject(key);
}
});
}
});
您可以使用普通的括号输入,只需演示绑定的工作(不确定,但数据属性不应该随它们一起丢失) 在模板中
<input onkeyup={{action 'inputChange' value='target.value'}}>
<input value={{inputVal}}>
顺便说一句,如果您想要滑块功能,请查看,为什么需要的数据属性?对于这种情况,您可以使用常规括号(尖括号)guess@Bek:我只需要它们,我不知道,让我的滑块库获得初始化滑块组件所需的数据-参数,或者其他任何东西,真的,没关系。我只需要它们。@Bek:你说我可以用“普通的尖括号”。如果余烬
{{input}}
帮助程序不提供任何值,我很乐意使用“常规尖括号”,并忘记它。与
相比,{input}}
提供的值是多少?为什么您认为我可以使用后者?@gonvald{input}
和
之间的差异随着余烬的发展正在慢慢消失,即使现在您可以使用具有与花括号相同功能的尖括号输入,看看我的答案,试着用那种方法,我想应该行得通,谢谢,对不起,但那太疯狂了。Ember正在使用带有ES6语法的Ember cli,指南中的语法似乎是旧的全局语法。如何在ember cli项目中重新打开文本字段?我应该把它放在哪个文件、目录中?更重要的是:为什么数据属性没有传播?根本的问题是什么?下面是如何重新打开内置类:我认为默认情况下不传播数据属性的原因是这对性能有害,因为在组件初始化时,您必须检查所有传递的属性。您可以将代码放在任何地方,请检查此旋转:通常,一个初始值设定项是应该去的地方。在这种情况下,我强烈建议您对组件进行子类化,并在模板中使用您自己的版本,以提高可读性/可维护性。谢谢,我会尝试一下。在ember文档中是否有关于向常规括号输入的转换的描述?
export default Ember.Controller.extend({
inputVal: 'hello',
actions: {
inputChange(val) {
this.set('inputVal', val);
}
}
});