Angularjs UI路由器显示无错误的白色页面
我正在用UI路由器做一个应用,但我一辈子都不明白为什么页面是空白的。没有显示任何模板URL。这是我的建议 layout.htmlAngularjs UI路由器显示无错误的白色页面,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在用UI路由器做一个应用,但我一辈子都不明白为什么页面是空白的。没有显示任何模板URL。这是我的建议 layout.html <div ui-view="form"></div> sdagas <div ui-view="results"></div> 结果 结果 app.config(function($stateProvider, $urlRouterProvider) { $stateProvider.state("index",
<div ui-view="form"></div>
sdagas
<div ui-view="results"></div>
结果
结果
app.config(function($stateProvider, $urlRouterProvider) {
$stateProvider.state("index", {
url: "/",
abstract: true,
templateUrl: 'layout.html',
controller: 'MainController',
controllerAs: 'main'
})
.state('index.layout', {
abstract: true,
url: 'layout',
views: {
'form' : {
templateUrl: 'form.html'
},
'results': {}
}
})
.state('index.layout.results', {
url: '/results',
views: {
'results@layout': {
templateUrl: 'results.html'
}
}
});
$urlRouterProvider.otherwise('/');
});
app.controller('MainController', function($state) {
console.log($state);
console.log('hello');
});
从ui路由器wiki:
抽象状态可以有子状态,但不能被激活
它本身“抽象”状态只是一种不可复制的状态
过渡到。当其中一个
子体被激活
您使根状态抽象:true
无法转换
更新:
ui sref=“/”
应包含状态名称,而不是url
路径本身。如果确实要使用url路径,则应使用href=“/”
更新:
您的html中也缺少了ng app=“app”
首先,您的plunker中没有声明任何ng应用程序。。你的html标签上应该有ng app=“app”
其次,就像@Bilal所说的,你不能在你想要转换到的状态上有abstract:true
此外,您的ui sref
应指向以下状态:
<a class="brand" ui-sref="index">home</a>
|
<a class="brand" ui-sref="index.layout">ui-router</a>
我在这里工作
我们调用状态结果的方式是:
ui-sref
<a class="brand" ui-sref="index.layout.results">
href
<a class="brand" href="#/layout/results">
哪个会启动应用程序
另外,因为“/”是抽象的,所以我使用了另一个设置来进入非抽象状态
$urlRouterProvider.when('/', '/layout/results');
$urlRouterProvider.otherwise('/');
最后(但几乎是最重要的),这是更新的超级子状态,它的目标不是布局中的命名视图,而是索引状态中的命名视图
.state('index.layout.results', {
url: '/results',
views: {
// wrong
//'results@layout': {
// this target is in the super parent
'results@index': {
templateUrl: 'results.html'
}
}
});
检查它我们需要查看HTML结构。这通常会导致视图在其各种模板中的布局方式。@tuckerjt07在“我的本地”中看起来是:不,实际的HTML文件及其内容。你能把它们作为代码发布到这里吗?@tuckerjt07 html文件只是文本。反正我已经贴了。它们也在plunkr中。请尝试从app.js视图名称的结果中删除@layout。您正在尝试单独调用index.layout吗?至于Plunkr,它们很棒,但对于我们移动设备来说,这是无用的。他们没有响应性的布局。更改我刚才提到的ui-sref
bug。
$urlRouterProvider.when('/', '/layout/results');
$urlRouterProvider.otherwise('/');
.state('index.layout.results', {
url: '/results',
views: {
// wrong
//'results@layout': {
// this target is in the super parent
'results@index': {
templateUrl: 'results.html'
}
}
});