我有一个基本的Index.html文件,其结构如下:
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'partials/login-area.html',
controller: 'LoginController',
});
当我处于登录状态时,它运作良好:
$stateProvider
.state('user', {
url: '/:buildingName',
controller: 'CurrentBuildingController',
data: {
access: ['user']
}
})
.state('user.management', {
url: '/management',
templateUrl: '/views/management.html',
controller: 'ManagementController'
})
但是,当我路由到user.management状态时,没有显示任何内容(但Chrome正在加载模板,因此我可以访问范围,并且.html文件就在那里):< / p>
var request = WebRequest.Create(UriString);
request.Timeout = Timeout;
if (_disableProxy)
{
request.Proxy = null;
}
if (request is HttpWebRequest)
{
var response = (HttpWebResponse)request.GetResponse();
responseStream = response.GetResponseStream();
}
if (request is FtpWebRequest)
{
var response = (FtpWebResponse)request.GetResponse();
responseStream = response.GetResponseStream();
}
else if (request is FileWebRequest)
{
var response = (FileWebResponse)request.GetResponse();
responseStream = response.GetResponseStream();
}
有人能解释我为什么吗?
答案 0 :(得分:2)
父状态只需为其子必须具有目标(除非我们使用绝对命名来定位某些超级父级,但这是另一种方法)
.state('user', {
url: '/:buildingName',
template: "<div ui-view></div>",
controller: 'CurrentBuildingController',
data: {
access: ['user']
}
})
看到我们现在有 template: "<div ui-view></div>",
,它将作为任何子州的观看目标 'user.xxx'
检查:
EXTEND - 让孩子定位index.html
我们可以使用绝对命名,然后将child直接注入index.html。有a working plunker (根据意图父级不会加载,它没有任何模板)
.state('parent', {
url: "/parent",
//templateUrl: 'tpl.html',
})
.state('parent.child', {
url: "/child",
views: {
'@': {
templateUrl: 'tpl.html',
controller: 'ChildCtrl',
}
}
})
检查以获取更多信息: