Angular Dart 将数据从路由服务传递到控制器



我正在努力找到一种方法将数据从路由器传输到控制器。路由上的 enter 方法正确从服务中获取数据,因为打印方法在控制台中显示 JSON 响应。

我的模块如下所示:

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

和我的路由器的简化版本

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);
                });
             }
          }
        )
      });
   }
}

目前我的控制器几乎是空的,看起来像这样

@NgController(
    selector: '[users-controller]',
    publishAs: 'userCtrl'
)
class UsersController {
     var list;
     UsersController() {
     }
}

有关如何将服务响应导入控制器的任何帮助都将很棒。

为什么要在路由输入事件处理程序中执行此操作?
您甚至不使用路线或事件中的任何信息。
您只需将UserService注册到模块中,让它注入到您的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);
  }
}

最新更新