Angular Dart中的路由和构造函数

时间:2014-02-06 19:10:15

标签: angularjs dart angular-dart

不确定这是不是一个bug。使用RouteProvider时,每次路由更改时,控制器构造函数中的代码都会运行。因此,在以下示例中,我调用fetchData()来加载视图中加载的初始数据。

@NgController(
    selector: '[my-controller]',
    publishAs: 'ctrl'
)
class MyController implements NgDetachAware {
  ...

  MyController(RouteProvider router) {
    linkId = router.parameters['linkId'];
    route = router.route.newHandle();
    fetchData();
  }
}

但是无论何时我导航到一个路由,构造函数中的代码都会执行,并且数据会被获取。

这是一个错误吗?如果没有,在视图加载时设置值的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

如果您的控制器在视图中使用,那么每次重新输入路径或参数更改时,该视图都会被销毁并重新创建,因此会创建控制器的新实例。