# \[Feature-1147\]Perspective - Delay Binding until custom property bindings have been evaluated

**URL:** <https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [March 1, 2021, 3:08pm UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947 "2021-03-01T15:08:44Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![chi](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@chi](https://forum.inductiveautomation.com/u/chi)\
**Post date:** [March 1, 2021, 3:08pm UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/1 "2021-03-01T15:08:44Z")

</div>

Hello,

i have a perspective popup with nested bindings:  
1 input parameter  
5 custom properties with expressions referencing the input parameter  
1 caroussel with a expression structure referencing the 5 properties and a following script transform

What happens is that the script transform ist calles for any change of a custom properties. So when opening the popup, the carousel flickers with different options until the final result is displayed.

Is there any way to delay evaluation of the carousels binding until all custom properties have been evaluated?

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [March 1, 2021, 5:07pm UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/2 "2021-03-01T17:07:07Z")

</div>

As of this time there is no way to really delay the binding evaluation process, nor the appearance of components which are waiting for bindings to evaluate. We do have an open feature request which would provide a way to determine how many bindings are still evaluating so that “loading” states may be applied to Views.

---

<div class="post-metadata">

**Author:** ![justin.brzozoski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/justin.brzozoski/32/13452_2.png) [@justin.brzozoski](https://forum.inductiveautomation.com/u/justin.brzozoski)\
**Post date:** [March 1, 2021, 6:15pm UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/3 "2021-03-01T18:15:53Z")

</div>

> [@cmallonee](#):
>
> We do have an open feature request which would provide a way to determine how many bindings are still evaluating so that “loading” states may be applied to Views.

Yes, please. 🙂

---

<div class="post-metadata">

**Author:** ![chi](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@chi](https://forum.inductiveautomation.com/u/chi)\
**Post date:** [March 2, 2021, 6:53am UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/4 "2021-03-02T06:53:50Z")

</div>

Ok, thank you for the feedback.  
I will replace the expression structure by scripts for now. My problem is not only the flicker but also the named query that executes 6 times in less than a second.

---

<div class="post-metadata">

**Author:** ![matthew.ayre](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matthew.ayre/32/19499_2.png) [@matthew.ayre](https://forum.inductiveautomation.com/u/matthew.ayre)\
**Post date:** [March 2, 2021, 10:13am UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/5 "2021-03-02T10:13:57Z")

</div>

@chi we use style animations to hide a lot of the flickering. Short fade in animations work well, and can often give the illusion that the UI is faster than it actually is.

---

<div class="post-metadata">

**Author:** ![chi](https://avatars.discourse-cdn.com/v4/letter/c/0ea827/32.png) [@chi](https://forum.inductiveautomation.com/u/chi)\
**Post date:** [March 2, 2021, 11:38am UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/6 "2021-03-02T11:38:12Z")

</div>

Thanks for your reply. Can you please explain how the animation knows when all properties have been evaluated and the component can be displayed? Or do you simply delay the initial display with a slow fade in?

---

<div class="post-metadata">

**Author:** ![matthew.ayre](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/matthew.ayre/32/19499_2.png) [@matthew.ayre](https://forum.inductiveautomation.com/u/matthew.ayre)\
**Post date:** [March 2, 2021, 11:59am UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/7 "2021-03-02T11:59:07Z")

</div>

@chi we delay the initial display for simplicity. Most cases for us the evaluation takes \<1s but we have got some animations that hide for 2s then fade in for 1s on the particularly complex displays.

This technique works particularly well for dynamically embedded views (I’m finding embedded views are still a little bit laggy, but I know that various solutions are being discussed by Ignition dev/support). If you have a fade in on the embedded view component and the child views, it hides the initial binding evaluation to get the appropriate view path and then the child view slowly fades in. This gives the effect of a deliberate staggered animation, when in fact it’s just hiding the loading of the views. But I digress…

---

<div class="post-metadata">

**Author:** ![Iggy\_the\_dog](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/iggy_the_dog/32/71890_2.png) [@Iggy\_the\_dog](https://forum.inductiveautomation.com/u/Iggy_the_dog)\
**Post date:** [April 10, 2025, 1:02am UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/8 "2025-04-10T01:02:34Z")

</div>

@cmallonee I see this feature was talked about a few years ago, I couldn't find anything similar in the change logs, is this something that is in 8.1 or could we expect to see it in 8.3?

---

<div class="post-metadata">

**Author:** ![pascal.fragnoud](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pascal.fragnoud/32/24728_2.png) [@pascal.fragnoud](https://forum.inductiveautomation.com/u/pascal.fragnoud)\
**Post date:** [April 10, 2025, 3:10pm UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/9 "2025-04-10T15:10:31Z")

</div>

I'm not sure when this was added, but structure bindings have a "wait on all" option:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/e/ae85644558b03ed6e54056efa5be0ef6e5529afc.png)

---

<div class="post-metadata">

**Author:** ![cmallonee](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmallonee/32/6416_2.png) [@cmallonee](https://forum.inductiveautomation.com/u/cmallonee)\
**Post date:** [April 10, 2025, 4:48pm UTC](https://forum.inductiveautomation.com/t/feature-1147-perspective-delay-binding-until-custom-property-bindings-have-been-evaluated/43947/10 "2025-04-10T16:48:31Z")

</div>

The ability to wait for all bindings within an Expression Structure to resolve before emitting a final value was added in [8.1.21](https://inductiveautomation.com/downloads/releasenotes/8.1.21#:~:text=Improved%20binding%20startup%20logic%20so%20that%20bindings%20are%20started%20up%20in%20order%20of%20cascading%20dependencies.).
