2015-05-22 30 views
1

我建立一个组件的模板:属性在组件不传播到

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

你可以在emberjs.jsbin.com创建一个失败bin – blessenm

+0

如果模板没有更新,这可能是因为当你改变属性时不使用ember setter。 'this.set('blah','blahblah');' – carter

+0

嘿,我刚刚编辑了这个帖子,并添加了一个JsBin来显示问题是如何工作的。 – Nico

回答

1

那么你要明白,表单输入元素是从灰烬输入助手不同,输入佣工维持绑定当值被改变,你的组件需要做同样的事情。你的组件正在做什么,是创建一个输入元素,其值被设置为组件中的任何'value'属性,组件呈现该元素,然后不关心用户如何处理它 - 点没有实际组件的value属性和“form”输入元素之间的“TIE UP”。你有责任这样做。这里是一个工作jsbin:http://emberjs.jsbin.com/muduxacanu/1/edit