不确定这是不是一个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();
}
}
但是无论何时我导航到一个路由,构造函数中的代码都会执行,并且数据会被获取。
这是一个错误吗?如果没有,在视图加载时设置值的正确方法是什么?
答案 0 :(得分:2)
如果您的控制器在视图中使用,那么每次重新输入路径或参数更改时,该视图都会被销毁并重新创建,因此会创建控制器的新实例。