我正在努力找到一种方法将数据从路由器传输到控制器。路由上的 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);
}
}