我开始用AngularJS v1.4.0测试新的ui-router v1.0.0alpha0,但是我收到了这个错误:
TypeError: Cannot read property 'creationContext' of undefined
at http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1573:65
at curried (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:128:24)
at http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:130:21
at Array.filter (native)
at matchingConfigPair (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1587:48)
at Array.map (native)
at $View.sync (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1597:53)
at $View.register [as registerUiView] (http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:1605:15)
at http://localhost:1828/lib/angular-ui-router/release/angular-ui-router.js:3741:37
at invokeLinkFn (http://localhost:1828/lib/angular/angular.js:8604:9) <!-- uiView: subjects.intro -->
这是我的app.config:
var home = {
name: 'home',
template: '<div data-ui-view></div>',
url: '/home/'
};
var homeSubjects = {
name: 'home.subjects',
resolve: {
getSubjects: ['subjectService',
(sus: ISubjectService) => {
console.log("getSubjects");
sus.getSubjects();
return true;
}]
},
url: 'subjects',
views: {
'': {
templateUrl: 'app/subjects/partials/subjects.html',
},
'subjects.intro@home.subjects': {
templateUrl: 'app/subjects/partials/subjects_intro.html',
},
'subjects.auth@home.subjects': {
templateUrl: 'app/subjects/partials/subjects_auth.html',
}
}
};
有没有人知道可能导致此问题的原因,或者我如何继续了解更多关于我在路由器的0.2版本中没有得到的问题?
由于
答案 0 :(得分:2)
您遇到此错误,因为它尝试查找名为ui-view
的{{1}}作为父级。
Imo这样做更简单:
subjects
绝对定位'intro@home.subjects': {
上下文中的'info'
视图。
因此,您可以在'home.details'
中获得以下ui视图:
app/subjects/partials/subjects.html
但是,如果您执行希望<div ui-view='intro'/>
名称中的点从ui-view
source读取此评论。
ui-router
所以在你的情况下,我猜这适用:
/*
* If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if:
* - There exists a parent ui-view where:
* - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name
* - the parent ui-view's context matches the ViewConfig's anchor
* - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn
*/
答案 1 :(得分:0)
由于您尚未提供JSFiddle示例,因此您很难注意到代码中的错误。但是这里是similar question,解决方案首先添加父状态。也许你使用相同的概念。
答案 2 :(得分:0)
首先我会尝试删除这里的逗号:
templateUrl: 'app/subjects/partials/subjects_auth.html',
..如果没有这样做,我会尝试更改
url: '/home/'
来:url: '/home'
和
url: 'subjects'
来:url: '/subjects'
如果还有问题,我会:
$stateProvider
的哪个位置。