属性 在未传播到模板的组件中
Property in a component not propagating to the template
我正在构建一个组件:
export default Ember.Component.extend({
tagName:'input',
classNameBindings: ['form-control','isMissing:input-warning',':form-control'],
isMissing: false,
attributeBindings: ['customType:type','customSize:size','value','disabled','placeholder'],
customType: "text",
customSize: "50",
valueBinding:'name',
disabled:'disabled',
placeholder:'placeholder',
focusIn:function(){
this.sendAction('submit');
},
focusOut:function(){
this.sendAction('cancel');
}
});
发生的事情是绑定属性 "value"(见代码第 5 行,第 4 列)似乎在传播从模板到组件时获得 'name' 的值,但反之则不然。
我错过了什么吗?我阅读了关于组件的 Ember 文档,这个属性绑定应该在两个方向上传播 属性 值的变化。
是否有绑定此值的替代方法?
谢谢!
编辑:
这是一个显示问题的 JSBIN:http://emberjs.jsbin.com/jalalamude/1/edit?html,js,output
你必须明白,表单输入元素不同于 ember 输入助手,输入助手在值更改时维护绑定,你的组件也需要这样做。您的组件正在做什么,是创建一个输入元素,其值设置为组件中的任何 'value' 属性 ,组件呈现该元素,然后不关心用户对其进行的操作-关键是在组件的值 属性 和 "form" 输入元素之间没有真正的 "TIE UP"。你有责任这样做。这是一个有效的 jsbin:http://emberjs.jsbin.com/muduxacanu/1/edit
我正在构建一个组件:
export default Ember.Component.extend({
tagName:'input',
classNameBindings: ['form-control','isMissing:input-warning',':form-control'],
isMissing: false,
attributeBindings: ['customType:type','customSize:size','value','disabled','placeholder'],
customType: "text",
customSize: "50",
valueBinding:'name',
disabled:'disabled',
placeholder:'placeholder',
focusIn:function(){
this.sendAction('submit');
},
focusOut:function(){
this.sendAction('cancel');
}
});
发生的事情是绑定属性 "value"(见代码第 5 行,第 4 列)似乎在传播从模板到组件时获得 'name' 的值,但反之则不然。
我错过了什么吗?我阅读了关于组件的 Ember 文档,这个属性绑定应该在两个方向上传播 属性 值的变化。
是否有绑定此值的替代方法?
谢谢!
编辑:
这是一个显示问题的 JSBIN:http://emberjs.jsbin.com/jalalamude/1/edit?html,js,output
你必须明白,表单输入元素不同于 ember 输入助手,输入助手在值更改时维护绑定,你的组件也需要这样做。您的组件正在做什么,是创建一个输入元素,其值设置为组件中的任何 'value' 属性 ,组件呈现该元素,然后不关心用户对其进行的操作-关键是在组件的值 属性 和 "form" 输入元素之间没有真正的 "TIE UP"。你有责任这样做。这是一个有效的 jsbin:http://emberjs.jsbin.com/muduxacanu/1/edit