Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Freeze or manually/conditionally re-evaluate a scope #10904

Closed
@dgieselaar

Description

Hi all,

I would love to see more control over whether a Scope's watchers should be re-evaluated. Currently, there's no way to 'freeze' a Scope as far as I can tell (without writing really weird brittle workarounds w/ private APIs). React has a shouldComponentUpdate method which is pretty nice and perhaps something could be of use to Angular.

Suppose a Scope has a $shouldEvaluate method, which accepts one parameter, which could either be:

  • 'inherit' the default: re-evaluates if the Scope's parent is re-evaluated.
  • true: always re-evaluate a Scope in a $digest loop.
  • false: never re-evaluate (effectively freezes the Scope).
  • getEvalIdentifier: a function which is called before re-evaluating the Scope's watchers. Its result is compared to the previous result. If they're not equal, the Scope is re-evaluated. This, for example, could be an id of an object.

Additionaly, a Scope would have a $evaluateNow method, which (obviously) would immediately re-evaluate all watchers.

This approach does mean child directives could for example freeze parent scopes, which is pretty bad, so an alternative would perhaps be to set this through a DDO (in conjuction with a child or isolated scope).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      AltStyle によって変換されたページ (->オリジナル) /