我有以下表格项目
{
fieldLabel:'Username'
,id:"username"
,name:'username'
,allowBlank:false
,plugins:[Ext.ux.plugins.RemoteValidator]
,rvOptions: {
url:'/registration/member/valid-username'
}
以后可以通过代码删除插件吗?
答案 0 :(得分:1)
我不这么认为。插件中的init
在组件初始化时运行,所以“在代码后面”已经太晚了 - “损坏已经完成”,插件已经挂钩了组件的事件等等。这很酷如果我错了。
答案 1 :(得分:0)
好吧,在功能上可以支持插件取消激活(不确定实际上是否完全删除插件),但大多数插件可能不会这样做,除非他们有一些理由支持它。您应该能够为插件编写覆盖并插入允许您激活/停用其功能的代码。当然取决于特定的插件,但如果插件写得很好,它应该是可重写的。
我的一般方法是:
Ext.override(Ext.ux.plugins.SomePlugin, {
isActive: true,
doSomething: function(){
if(this.isActive){
// copy orig doSomething
}
}
});
然后您可以根据需要设置pluginInstance.isActive = true/false
。请注意,这很简单 - 您的插件可能需要更多工作才能有效覆盖。但这种方法是一个很好的起点。
或者您可能会喜欢并使用插件上的createInterceptor
函数来执行类似的操作,而无需复制代码。