angular ui router:component $ onInit在路由更改时触发两次
我使用angular-ui-router 0.2.18,角度为1.5.x. 我无法解释为什么我的组件$ onInit激发两次(我不认为它与我的问题有关,但我也使用webpack)。
我的路由:
myModule.config(function ($stateProvider) {
$stateProvider
.state('app.project', {
abstract: true,
url: '/project',
template: '<ui-view/>'
})
.state('app.project.demo', {
url: '/demo',
template: '<my-component></my-component>'
});
});
我的组件的准系统版本:
myModule.component('myComponent', {
template: require('./my-component.html'),
bindings: {},
controller: function () {
this.alert = function () {
console.log("fires");
};
this.$onInit = function () {
this.alert();
};
}
});
在我的应用程序某处,路由更改由<a ui-sref="app.project.demo"></a>
触发。
当我点击链接时, alert
功能会触发两次,但当我重新加载页面时不会触发。 也许控制器在路由改变时加载了两次?
我已经尝试了这个SO问题中列出的所有内容:与angularjs-executed-controller-twice进行交锋,但没有成功。
但是,真正困惑我的是,当我重命名我的状态名而不改变别的时候,问题就消失了:
'app.project.demos'
作品 'app.projects.demo'
可以工作(当然,在将'app.project'
改为'app.projects'
之后) 什么可能是解释?
链接地址: http://www.djcxy.com/p/77951.html上一篇: angular ui router: component $onInit fires twice on route change