我很难找到一种方法将数据从路由器传输到我的控制器。路由上的enter方法正确地从服务中获取数据,因为print方法在控制台中显示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() {
}
}
如何将服务响应提供给控制器的任何帮助都会很棒。
答案 0 :(得分:0)
为什么要在路径输入事件处理程序中执行此操作?
您甚至不使用路线或活动中的任何信息
您只需在模块中注册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);
}
}