角度Dart将数据从路由服务传递到控制器 [英] Angular Dart passing data from route service into a controller

查看:121
本文介绍了角度Dart将数据从路由服务传递到控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在努力找到一种方法将数据从我的路由器传送到我的控制器。



我的模块看起来像这样:

在路径上的enter方法正确地从服务获取数据,因为打印方法显示JSON响应。 p>



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


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.

解决方案

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

这篇关于角度Dart将数据从路由服务传递到控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆