Reputation: 297
Way late to the party, but was messing around with FW/1 this week and I am having a problem with controllers and real time updates. I have the following code to simulate authentication for now.
application.cfc
public function setupRequest() {
controller("user.checkAuthorization");
}
user.cfc
function checkAuthorization(any rc) {
rc.authenticated = true;
}
In my view I toggle certain things based on rc.authenticated. All of this works fine, but if I toggle rc.authenticated from true to false nothing changes on the screen until I reset the app. Then I see the updated changes on the screens.
I'm not sure why changes aren't being made on page without the app re-init. Is this something in FW/1? Something in Lucee? Commandbox etc?
Upvotes: 1
Views: 147
Reputation: 1820
Or you could just do:
application.cfc
variables.framework.environments = {
dev = {
reloadApplicationOnEveryRequest = true,
…
},
prod = {
…
}
}
Upvotes: 0
Reputation: 2363
Controllers are cached by the framework so any changes won't be reflected until you reload the cache. You can do this on an ad hoc basis by adding ?reload=true
to the URL.
If you are in a dev environment and making frequent changes to controllers you could add some logic to the setupRequest()
method in Application.cfc to clear the contoller cache on every request:
public void function setupRequest(){
if( isDevEnvironment ) // use your own way of determining this
application[ variables.framework.applicationKey ].cache.controllers = {} // clear the controller cache on every request
}
Upvotes: 1