Angular Dart passing data from route service into a controller

牧云@^-^@ 提交于 2019-12-06 12:19:16

问题


I'm struggling to find a way to get data from my router into my controller. The enter method on the route is correctly grabbing the data from the service, as the print method shows the JSON response in the console.

My Module looks like this:

class MyAppModule extends Module {
  MyAppModule () {
    type(UsersService);
    type(UsersController);
    type(RouteInitializerFn, implementedBy: MyAppRouteInitializer);
    factory(NgRoutingUsePushState,
        (_) => new NgRoutingUsePushState.value(false));
  }
}

and a simplified version of my router

class MyAppRouteInitializer {

  final UsersService _userService;

  MyAppRouteInitializer(this._userService);

  void call(Router router, ViewFactory views) {
     views.configure({
        'users': ngRoute(
         path: '/users',
         view: 'views/users/users.html',
         mount: {
            'list': ngRoute(
             path: '',
             view: 'views/users/list.html',
             enter: (RouteEnterEvent e) {
                _userService.all((HttpResponse response){
                    var data = response.data['body'];
                    print(data);
                });
             }
          }
        )
      });
   }
}

At the moment my controller is pretty much empty just looks like this

@NgController(
    selector: '[users-controller]',
    publishAs: 'userCtrl'
)

class UsersController {
     var list;

     UsersController() {

     }

}

Any help on how to get the service response into the controller would be awesome.


回答1:


Why do you want to do this in the route enter event handler?
You don't even use any information from the route or the event.
You could just register the UserService with your Module an let it inject to your UserController.

class MyAppModule extends Module {
  MyAppModule() {
    type(UsersService);
  }
}

@NgController(
  selector: '[users-controller]',
  publishAs: 'userCtrl'
)

class UsersController {
  var list;

  UsersService _usersService;

  UsersController(this._usersService) {
    _userService.all((HttpResponse response){
                    var data = response.data['body'];
                    print(data);
  }
}


来源:https://stackoverflow.com/questions/22104991/angular-dart-passing-data-from-route-service-into-a-controller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!