In Dart Angular, how to pass functions to componen

2019-04-29 01:46发布

问题:

I have a component MyComp and I would like to pass a function to it as parameter. More precisely I would like to do something like that:

dart component file:

 @NgComponent(
        selector: 'mycomp',
        publishAs: 'ctrl',
        map: const {
          'myfunc' :'=> myfunc'
        }
    )
class MyComponent {
   Function myfunc;

   ....
   myfunc();
}

html:

<mycomp myfunc="ctrl.myfunc"></button-list>

The problem is that myfunc is null in the component. Do I miss something? How can I do that?

回答1:

Use '&' to bind a function to a field:

@NgComponent(
    selector: 'mycomp',
    publishAs: 'ctrl',
    map: const {
      'myfunc' :'&myfunc'
    }
)
class MyComponent {
    Function myfunc;

   ....
   myfunc();
}

http://ci.angularjs.org/view/Dart/job/angular.dart-master/javadoc/angular.core/NgComponent.html#map



回答2:

The preferred way in AngularDart is to use annotations

@NgCallback('myfunc') Function myFunc;