How to communicate between Angular DART controllers

前端 未结 3 1565
旧巷少年郎
旧巷少年郎 2020-12-04 02:49

i have two controllers and want to \"send\" between them object. I have something like this:

@NgController(selecto         


        
3条回答
  •  悲&欢浪女
    2020-12-04 03:04

    You could use
    * scope.$emit
    * scope.$broadcast
    * scope.$on

    @grohjy s solution might work also, depending on your requirements

    Scope scope;
    UserController(this.scope) { // get access to the scope by adding it to the constructor parameter list
      // sender
      scope.$emit('my-event-name', [someData, someOtherData]); // propagate towards root
      scope.$broadcast('my-event-name', [someData, someOtherData]); // propagate towards leaf nodes (children)
      scope.$parent.$broadcast('my-event-name', [someData, someOtherData]); // send to parents childs (includes silblings children)
      scope.$root.$broadcast('my-event-name', [someData, someOtherData]); // propagate towards leaf nodes starting from root (all nodes)
    
      // receiver
      scope.$on('my-event-name', (ScopeEvent e) => myCallback(e)); // call myCallback when an `my-event-name` event reaches me
    }
    

    just write scope.$emit (or one of the other methods) and ctrl+mouseclick to navigate to the the doc comments to get more information.

提交回复
热议问题