use*_*419 2 javascript routing angularjs angular-ui-router
我正在使用下面的状态定义(UI-Router's).一旦我调用$ state.go('products.new'),控制器(ProductCtrl)就会被调用两次.
由于某种原因,UI路由器"忘记"原始状态更改并仅基于URL调用控制器(在这种情况下确实不明确).
如果我直接到达页面(深层链接),控制器将被调用一次.
有什么建议如何使其工作?
.state('products', {
abstract: true,
template: "<div ui-view></div>"
})
.state('products.product', {
url: '/products/:productId',
templateUrl: 'views/productView.html',
controller: 'ProductCtrl'
})
.state('products.new', {
url: '/products/new',
templateUrl: 'views/productView.html',
controller: 'ProductCtrl'
})
Run Code Online (Sandbox Code Playgroud)
这可能是很多事情,但您没有提供有关您的观点的更多详细信息:
它可能在路由中具有控制器和视图之间的绑定(就像你拥有它一样)并且ng-controller="ProductCtrl"在视图中引用了@veroxii建议所以路由在请求URL时立即调用控制器,之后再次作为视图加载后
但也可能是你正在使用UI路由器和引导标签或类似的东西(我有这个问题),你正在加载<div ui-view></div>选项卡内部(嵌套视图).在这种情况下,控制器可能被调用N次N <div ui-view></div>是视图中的数量.移动<div ui-view></div>选项卡和tabset 的外部解决了我的问题.
我只是遇到了同样的问题$state.go.原来这是真的这个问题,我会想你有ng-controller="ProductCtrl"你的HTML某处,并在你的状态定义控制器:
| 归档时间: |
|
| 查看次数: |
4725 次 |
| 最近记录: |