“应用督察煎茶”
对于一个快速浏览一下组件层次,可以使用煎茶浏览器插件,
查找以编程方式某些ExtJS组件
要快速搜索ExtJS组件或将您的发现转换为代码,您的main工具将是浏览器控制台和命令Ext.ComponentQuery.query(xtype)
,例如
Ext.ComponentQuery.query("grid")
Ext.ComponentQuery.query("panel")
Ext.ComponentQuery.query("form")
然后,您将在浏览器控制台中找到该类型所有组件的数组。选择正确的,并检查它是否有自动生成的id或itemId(类似xtype-1234
的所有内容都是自动生成的)。对于表单域,name
属性可能很有用。像
Ext.ComponentQuery.query("[itemId=ABC]")
Ext.ComponentQuery.query("[name=DEF]")
Ext.getCmp(id)
命令是远更可读的,而不是作为容易产生副作用Ext.ComponentQuery.query("panel")[12]
。
大多数情况下,在树状结构中思考也很有用。如果你想有一个特定的容器,它包含了你看到的唯一滑块,试图
Ext.ComponentQuery.query("slider")
Ext.ComponentQuery.query("slider")[0].up()
可能比通过几十甚至几百个集装箱的筛选更加容易。遍历组件结构的方法包括up(xtype)
,down(xtype)
,nextSibling(xtype)
,previousSibling(xtype)
。如果提供了xtype,则选择相应xtype的下一个组件;如果未提供,则选择下一个组件而不管其类型(例如直接父母,邻居兄弟)。
更改任何你想要的。
可以扩展,调试或修改任何现有的行为,包括但不限于ExtJS的自己的代码,使用所谓的override
过任何组件,其中包括了组成该应用程序的意见或商店。 override
是一个伟大的搜索字词,以获取更多信息。
或者您可以从应用程序外部向现有组件添加新组件,例如现有表单的按钮。例如,开放式煎茶文档,然后插入控制台:
Ext.ComponentQuery.query("searchcontainer")[0].up().insert(1,{xtype:'button',text:'Test',handler:function(){Ext.Msg.alert('Test Button clicked');}});
您应该然后找到的权煎茶标志在左上角的按钮。点击它。
查找现有的控制器
对于这一点,你必须要找到应用程序命名空间的名称。
如果它是例如MyApp
,然后MyApp.app.controllers.items
包含控制器列表。控制器包含控制逻辑,以及组件和逻辑之间的映射。当组件创建时,控制器将它们的事件附加到这些新组件。在组件层中可以进行许多更改,因为控制器覆盖很混乱。
查找的ViewModels
你已经完成,ExtJS的4.2不支持他们。
更改模型
如果你想改款车型,谨慎:有没有支持功能将字段添加到模型。您可以覆盖模型原型,并将更多条目推入fields
阵列。但是,如果您有任何模型实例(记录)在那段时间内已经运行,它们不会更新,并且任何现有保修都将失效。
这就是说,你在MyApp.model
找到它们。你可以例如使用Docs.model.Comment.prototype.fields
获得Sencha Docs评论模型的所有字段,或者甚至推入另一个字段。