组件中未传播到模板的属性

时间:2015-05-22 11:46:01

标签: ember.js components

我正在构建一个组件:

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');
  }
});

当发生传播从模板到组件时,绑定属性“值”(参见代码第5行,第4列)似乎得到'name'的值,但不是相反的方式

我错过了什么吗?我在组件上阅读了Ember文档,这个属性绑定应该在两个方向上传播属性值的变化。

是否有另一种方法来绑定此值?

谢谢!

编辑:

这是一个表明问题的JSBIN:http://emberjs.jsbin.com/jalalamude/1/edit?html,js,output

1 个答案:

答案 0 :(得分:1)

您必须了解表单输入元素与ember输入助手不同,输入助手在更改值时保持绑定,并且组件需要执行相同操作。你的组件正在做的是创建一个输入元素,其值被设置为组件中的任何“value”属性,组件呈现元素然后不关心用户使用它做什么 - 关键是没有真正的组件的value属性和“form”输入元素之间的“TIE UP”。你有责任这样做。这是一个有效的jsbin:http://emberjs.jsbin.com/muduxacanu/1/edit