Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
Let's say I have an extension, with a custom property, 'app'.
When the value of 'app' changes, I want to call a function once and once only.
I'm using AngularJS in my extension, and the function is relatively expensive (so I don't want to keep calling it in paint() or resize() or call it directly from the template.
My current solution means that the code is only called once when the extension is loaded, and any changes to the property mean a refresh is required to update things - not an ideal situation.
thanks,
Shane.
Hi,
I managed to solve it by doing this:
$scope.$watch("$parent.$parent.editmode", function(newValue, oldValue) {
// call function
}, true);
Regards,
Shane.
Alternatively,
call a function when the extension exits edit mode.
Hi Shane, can you share the bit of code that calls this function? It will make it easier for us to help with an example.
Without knowing your situation, I would do something life this:
var executeOnce = false;
var myFunction = function() {
if(!executeOnce)
{
do something...
executeOnce = true;
}
};
JV
Hi,
thanks for getting back to me. I don't want it to call once for its lifetime, I want it to call once after a property has changed. In fact, my first reply is probably more accurate, I want to call the function when Sense 'exits' edit mode
My function basically calls getAppList(...) and does several subsequent things that I don't want to be happening more than I need. The getAppList return then uses the property panel's apps collection (there are properties for 'app1', 'app2', 'app3', 'app4' and 'app5') to return and show information about the apps.
When the extension loads, the code fires and things work nicely. But when somebody goes into the property panel and modifies something, the code doesn't fire again.
I hope that makes sense,
Shane.
Can you please post the code of when a property changes and the definition of those properties?
JV
Hi,
I managed to solve it by doing this:
$scope.$watch("$parent.$parent.editmode", function(newValue, oldValue) {
// call function
}, true);
Regards,
Shane.