为什么AngularDart 5.0.0路由器调用NgOnInit()两次?

时间:2018-03-15 21:02:57

标签: angular-dart

我正在构建一个带有“用户”页面的AngularDart 5.0.0应用程序:

@Component(
  selector: 'users-page',
  directives: const [coreDirectives],
  pipes: [COMMON_PIPES],
  templateUrl: 'users_page_component.html',
  styleUrls: const [
    'users_page_component.css',
  ],
)
class UsersPageComponent extends OnInit {
  ngOnInit() async {
    print("ngOnInit() ${this.hashCode}");
  }
}

我在AppComponent中设置了到此页面的路线并定义了路线:

static final routes = [
   new RouteDefinition(
      routePath: usersRoutePath,
      component: users.UsersPageComponentNgFactory),
];

<router-outlet [routes]="AppComponent.routes"></router-outlet>

使用在课外定义的路线:

final usersRoutePath = new RoutePath(
  path: 'users',
  parent: appRoutePath,
  useAsDefault: true,
);

当用户点按按钮时,我拨打_router.navigate()

_router.navigate(usersRoutePath.toUrl(parameters: params));

点击按钮时,会拨打NgOnInit()两个电话:

ngOnInit() 80777801
ngOnInit() 464932208

我已经三次检查.navigate()只被调用一次。

这是一个问题,因为我需要在加载用户页面时进行网络调用,并希望避免连续两次。

这是一个错误吗?如何防止创建多个UsersPage组件?

0 个答案:

没有答案