UI-路由器多个命名视图不工作
UI-Router multiple named views not working
我尝试使用 UI-Router 的多重命名视图,但它不起作用。
请参阅以下示例以了解我的问题:
start.html
<body ng-app="startApp">
<div ui-view="navigation"></div>
<div ui-view="content"></div>
</body>
nav.html
<nav>
<ul>
<li>btn1</li>
<li>btn2</li>
</ul>
</nav>
content.html
<h1>My content</h1>
app.js
angular.module('startApp', ['ngAnimate', 'ui.router', 'ngFileUpload', 'ngImgCrop'])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('start', {
url: '/start',
templateUrl: 'pages/start/start.html',
controller: 'mainController'
})
.state('start.Why', {
url: '/Why',
views: {
'navigation@start': {
templateUrl: 'pages/start/nav.html'
},
'content@start': {
templateUrl: 'pages/start/content.html'
}
}
})
})
问题
没有显示。 ui-view 中没有注入任何东西..
但是如果我的 ui-view 没有名字并且我的 id view 是 ''
而不是 'navigation@start'
它的工作: navigation.html 是显示..
我尝试使用 '@start'
和不使用。我无法解释问题出在哪里。我的js控制台很清楚。
你能帮帮我吗?
as link 我为 you.try 添加这个
$stateProvider
.state('start', {
url: '/start',
templateUrl: 'pages/start/start.html',
controller: 'mainController'
})
.state('start.Why', {
url: '/Why',
views: {
'navigation@start.Why': {
templateUrl: 'pages/start/nav.html'
},
'content@start.Why': {
templateUrl: 'pages/start/content.html'
}
}
})
这里我们需要的是创建'start'状态的unnamedview占位符ui-view=""
,里面的index.html:
<body ng-app="startApp">
<div ui-view=""></div>
开始的视图现在将不包含 ng-app
<!--<body ng-app="startApp">-->
<div>
<h1>This is a start state view</h1>
<div>place for child state views</div>
<hr />
<div ui-view="navigation"></div>
<div ui-view="content"></div>
<!--</body>-->
</div>
就是这样..没有其他变化。没有root(start)有target,child(why)会被正确注入
中的当前解法
同时检查:
Angular UI Router - Nested States with multiple layouts
我尝试使用 UI-Router 的多重命名视图,但它不起作用。
请参阅以下示例以了解我的问题:
start.html
<body ng-app="startApp">
<div ui-view="navigation"></div>
<div ui-view="content"></div>
</body>
nav.html
<nav>
<ul>
<li>btn1</li>
<li>btn2</li>
</ul>
</nav>
content.html
<h1>My content</h1>
app.js
angular.module('startApp', ['ngAnimate', 'ui.router', 'ngFileUpload', 'ngImgCrop'])
.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('start', {
url: '/start',
templateUrl: 'pages/start/start.html',
controller: 'mainController'
})
.state('start.Why', {
url: '/Why',
views: {
'navigation@start': {
templateUrl: 'pages/start/nav.html'
},
'content@start': {
templateUrl: 'pages/start/content.html'
}
}
})
})
问题
没有显示。 ui-view 中没有注入任何东西..
但是如果我的 ui-view 没有名字并且我的 id view 是 ''
而不是 'navigation@start'
它的工作: navigation.html 是显示..
我尝试使用 '@start'
和不使用。我无法解释问题出在哪里。我的js控制台很清楚。
你能帮帮我吗?
as link 我为 you.try 添加这个
$stateProvider
.state('start', {
url: '/start',
templateUrl: 'pages/start/start.html',
controller: 'mainController'
})
.state('start.Why', {
url: '/Why',
views: {
'navigation@start.Why': {
templateUrl: 'pages/start/nav.html'
},
'content@start.Why': {
templateUrl: 'pages/start/content.html'
}
}
})
这里我们需要的是创建'start'状态的unnamedview占位符ui-view=""
,里面的index.html:
<body ng-app="startApp">
<div ui-view=""></div>
开始的视图现在将不包含 ng-app
<!--<body ng-app="startApp">-->
<div>
<h1>This is a start state view</h1>
<div>place for child state views</div>
<hr />
<div ui-view="navigation"></div>
<div ui-view="content"></div>
<!--</body>-->
</div>
就是这样..没有其他变化。没有root(start)有target,child(why)会被正确注入
中的当前解法同时检查: