Thank you for reporting this bug. We will make it our priority to review this report.
[FIXED] Build 439 - Loops my files
Just a moment ago, I have updated my Sencha Architect to the build 439. My app used to work pretty well just before the update. After the update, I deployed the app with a very minor change (just an icon url). Then my app crashed on both Chrome and Firefox -not tested on others.
On fiddler, here is how it seems:
If you keep the page on, the loop of TourModel and TourCategoryModel goes on until the software crashes.
changes in model production
just compared my backup"s model files and the model files produced by build 439.
Build 439 produces model files with "requires" config, which was not possible and could not be done before this build. Now new model files have "requires" config with relations to other model files. I havent specified any "requires" config, it is there automatically and i cannot change it. I have to remove the requires config manually on every deploy...
autoLoad on hasmany association
I think I found what was wrong.
On my hasMany associations of my models, I had "autoload" true. Removed it and loop is gone. (i had cross-references between my models, I think this is why Extjs tried to go back and forth again and again).
This is a very serious bug! Turning off autoLoad does not fix the issue for me, and requires statements are generated for belongsTo associations as well. I have a number of infinite loading loops in my app now and it is totally useless.
This needs to be fixed ASAP as it completely breaks projects!
Could you please attach a use case where the requires is causing loading to go in a loop?
Sencha Designer Development Team
@Sottilde, can you please confirm that you dont have any cross-associations between your models? Example:
Model1 belongsTo Model2
Model2 hasMany Model1
If you have such a scheme, can you try removing one of associations? This may worth a try. My app is a little bit complex; I would have to create the issue by trying many things again. I will try to reproduce the issue when I have a more suitable time. Perhaps Sottilde could do this for us.
I do have cross-associations. I was not aware this was a bad thing to do. It has been working for me and in production for weeks now.
Simple use case:
Create two models.
Model A hasMany Model B.
Model B belongsTo Model A.
Removing the cross-associations fixes the problem because the requires statement goes away. But I do not want to remove the cross-associations.
Circular model associations are perfectly valid, and the code that Architect generates should allow it.
I've tried creating a simple test with A->B and B->A associations and cannot reproduce the loading loop. Perhaps there's something else in play, can you attach an archive of the project in question?
Sencha Architect Development Team
Are you not seeing that Model A requires Model B and vice-versa?
Originally Posted by jjohnston
I am not clear on why these requires statements are being generated now. They were not being generated in previous versions and that worked fine. IMO they should all be stated in Application and loaded then, instead of this spaghetti loading system.
I don't see why Ext.Loader wouldn't be able to detect that Model A is already loaded when loading Model B.
Is the designer.feedback@sencha email address still open? I am not comfortable with putting our production code on an open forum.
I do see the requires are generated in the code like you say. But when I open it in a browser I do not get the loading loop like your screenshot, it loads each model file only once.
Yes that email address is still open.
Sencha Architect Development Team