我有一个从文件字段扩展的组件,
我向其中添加了一个自定义属性“serverPath”,并且我还定义了 getter 和 setter。
代码 :
Ext.define('MyApp.ux.Field.File',{
extend:'Ext.form.field.File',
xtype:'myfilefield',
serverPath:'',
getServerPath:function(){
return this.serverPath;
},
setServerPath:function(serverPath){
this.serverPath = serverPath;
}
});
Ext.create('MyApp.ux.Field.File',{
bind:{
serverPath:'{serverPath}'
},
viewModel:{
type:'myViewModel'
}
});
我不会粘贴 myViewModel 的定义。很简单。
结果绑定并没有生效。
有人可以帮忙吗?
你的班级应该是:
Ext.define('MyApp.ux.Field.File',{
extend:'Ext.form.field.File',
xtype:'myfilefield',
config: {
serverPath:''
}
});
您应该已准备就绪,因为 ExtJS 将为您以及 setter 创建 setter 和 getter。
在您的视图模型中确保您有:
data: {
serverPath : 'yourPathGoesHere'
}
Edited有两件事被遗漏了:
- 当 ViewModel 上的值发生更改时,调度程序会异步发布更改。如果您希望立即反映更改,则需要在 ViewModel 上使用通知或延迟更改后的逻辑。
- 要获取类的自定义配置属性以通知 ViewModel 更改,您需要将它们添加到“发布”配置属性中。
请看这个更新了小提琴 https://fiddle.sencha.com/#fiddle/fbm.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)