這裏是我迄今爲止與UI路由器的狀態:防止打孩子指出UI路由器
$stateProvider
.state('tools', {
url: '/tools/:tool',
template: '<div ui-view=""></div>',
abstract: true,
onEnter: function ($stateParams, $state, TOOL_TYPES) {
if (TOOL_TYPES.indexOf($stateParams.tool) === -1) {
$state.go('error');
}
}
})
.state('tools.list', {
url: '',
templateUrl: 'app/tools/tools.tpl.html',
controller: 'ToolsController'
})
.state('tools.view', {
url: '/:id/view',
templateUrl: 'app/tools/partials/tool.tpl.html',
controller: 'ToolController'
});
正如你可以看到雙親狀態有參數tool
這隻能是在TOOL_TYPES
陣列。因此,如果tool
不可用,我想重定向到錯誤頁面。
其實,一切正常,但我得到兩個錯誤:
TypeError: Cannot read property '@' of null
TypeError: Cannot read property '@tools' of null
,所以我想,孩子的狀態一直在 '打' 反正。是否有可能防止這種情況發生?或者也許有其他方法可以實現我想要的?
我覺得這可能是一個已知的問題與UI的路由器。檢查這個:https://github.com/angular-ui/ui-router/issues/1434和這個:https://github.com/angular-ui/ui-router/issues/1234了。 – 2015-02-05 15:53:55