Good question. It seems that the actions violate the MVC pattern, somehow combining the View and Controller paradigms under one roof. Since they have handlers, they carry functionality with them, as well as user interface elements such as text and icons. However, they are not components - in the sense of the word ExtJS. Therefore, you cannot target them using the selector.
The best way to think about them is as a configuration object. No more no less. The configuration object alone does not make sense and cannot be targeted. The same with actions. For example, they can be used as a configuration object for buttons.
Now where should they go? The answer to this, I think, really depends on you as a designer. Since they do not support the strict MVC pattern, you can make a decision based on how broadly you need the particular action to be available. For truly global actions that are shared by many views, you could even put them in the application configuration: for example, MyApp.app.actions ["delete"]. A controller can be a good place to install it if this controller configures several views and connects them along with the stores. They can potentially connect to multiple views using common actions.
Hope this helps. Good luck :)
dbrin source share