Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过代码删除extjavascript形式的插件?_Javascript_Extjs - Fatal编程技术网

通过代码删除extjavascript形式的插件?

通过代码删除extjavascript形式的插件?,javascript,extjs,Javascript,Extjs,我有以下表格项目 { fieldLabel:'Username' ,id:"username" ,name:'username' ,allowBlank:false ,plugins:[Ext.ux.plugins.RemoteValidator] ,rvOptions: { url:'/registration/member/valid-username' } 以后可以通过代码删除插件吗?我不这么认为init在组件初始化时运行,因此“代码中的后期”为时已晚——“损坏已经完成”,插件

我有以下表格项目

{
 fieldLabel:'Username'
,id:"username"
,name:'username'
,allowBlank:false
,plugins:[Ext.ux.plugins.RemoteValidator]
,rvOptions: {
    url:'/registration/member/valid-username'
}

以后可以通过代码删除插件吗?

我不这么认为<插件中的code>init在组件初始化时运行,因此“代码中的后期”为时已晚——“损坏已经完成”,插件已经连接到组件的事件中,等等。如果我错了,那就太酷了。

我不这么认为<插件中的code>init在组件初始化时运行,因此“在代码的后面”已经太晚了-“损坏已经完成”,插件已经连接到组件的事件中,等等。如果我错了,那就太酷了。

好吧,从功能上来说,支持插件停用是可能的(不确定是否要完全删除插件),但大多数插件可能不会这样做,除非他们有理由支持它。你应该能够写一个覆盖插件,并插入代码,允许你激活/停用其功能。当然,这取决于特定的插件,但如果插件写得好,它应该是可覆盖的

我的一般做法是:

Ext.override(Ext.ux.plugins.SomePlugin, {
   isActive: true,
   doSomething: function(){
      if(this.isActive){
          // copy orig doSomething
      }
   }
});
然后,您可以根据需要简单地设置
pluginInstance.isActive=true/false
。请注意,这太简单了——您的插件可能需要更多的工作才能有效覆盖。但这种方法将是一个很好的起点


或者你也可以在插件上使用
createInterceptor
函数来做类似的事情,而不需要重复代码。

好吧,从功能上来说,它可以支持插件停用(不确定是否真的完全删除插件),但大多数插件可能不会这样做,除非他们有理由支持它。你应该能够写一个覆盖插件,并插入代码,允许你激活/停用其功能。当然,这取决于特定的插件,但如果插件写得好,它应该是可覆盖的

我的一般做法是:

Ext.override(Ext.ux.plugins.SomePlugin, {
   isActive: true,
   doSomething: function(){
      if(this.isActive){
          // copy orig doSomething
      }
   }
});
然后,您可以根据需要简单地设置
pluginInstance.isActive=true/false
。请注意,这太简单了——您的插件可能需要更多的工作才能有效覆盖。但这种方法将是一个很好的起点

或者你也可以在插件上使用
createInterceptor
函数来做类似的事情,而不需要重复代码