Angularjs 应用程序不会使用 ui-router 路由回主页
Angularjs app not routing back to homepage with ui-router
我在angularjs应用程序中遇到了ui路由的障碍。 以前它工作正常,老实说,我不记得更改了任何会影响路由的内容。
当我第一次开始调试时,应用程序加载正常,索引导航栏和主视图显示。然后,我可以毫无问题地导航到应用程序的其他区域,只有当我单击导航栏中的主页链接时,请求才会失败,并且索引页面和主页视图不会加载。
我正在使用 netbeans 来构建我的应用程序。
我的文件夹结构根--.app----服务业----控制器----.css----数据----.js----视图索引.html
这是我的索引.html
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html ng-app="myApp">
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="app/css/bootstrap.min.css" >
<link rel="stylesheet" href="app/css/bootstrap.css" >
</head>
<!-- Define an angular controller -->
<body>
<div class="navbar-wrapper">
<div class="container">
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/home">Home</a></li>
<li class="dropdown">
<a ui-sref="hydrotel" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Hydrotel<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a ui-sref="hydrotel.overview">Overview</a></li>
<li role="seperator" class="divider"></li>
<li><a ui-sref="hydrotel.interfaces">Interfaces</a></li>
<li><a ui-sref="hydrotel.dataTransfer">Data Transfers</a></li>
</ul>
</li>
<li class="dropdown">
<a ui-sref="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">WISKI<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="wiski">Overview</a></li>
</ul>
</li>
<li class="dropdown">
<a ui-sref="" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Hydstra<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a ui-sref="hydstra">Overview</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</div>
</div>
<!-- MAIN CONTENT AND INJECTED VIEWS -->
<div class="main">
<div ui-view></div>
</div>
<!-- Angular Declaration -->
<script src="app/js/angular.min.js" type="text/javascript"></script>
<script src="App/js/angular-table.js" type="text/javascript"></script>
<script src="App/js/angular-table.min.js" type="text/javascript"></script>
<!-- Include the AngularJS routing library -->
<script src="App/js/angular-route.min.js" type="text/javascript"></script>
<script src="App/js/angular-ui-router.min.js" type="text/javascript"></script>
<script src="App/js/angular-ui-router.js" type="text/javascript"></script>
<!-- Jquery -->
<script src="app/js/jquery-2.2.0.js" type="text/javascript"></script>
<!-- Bootstrap js -->
<script src="app/js/bootstrap.min.js" type="text/javascript"></script>
<!-- Modules-->
<script src="App/js/app.js" type="text/javascript"></script>
<!-- Controllers -->
<script src="App/controllers/homeController.js" type="text/javascript"></script>
<script src="App/controllers/hydrotelController.js" type="text/javascript"></script>
<script src="App/controllers/overviewController.js" type="text/javascript"></script>
<script src="App/controllers/interfaceController.js" type="text/javascript"></script>
<script src="App/controllers/dataTransferController.js" type="text/javascript"></script>
<script src="App/controllers/hydstraController.js" type="text/javascript"></script>
<!-- Angular google charts-->
<script src="App/js/ng-google-chart.min.js" type="text/javascript"></script>
<script src="App/js/ng-google-chart.js" type="text/javascript"></script>
<!-- Smart Table-->
<script src="App/js/smart-table.min.js" type="text/javascript"></script>
<script src="App/js/smart-table.js" type="text/javascript"></script>
</body>
</html>
我的应用程序.js我在其中声明模块和路由。
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
var app = angular.module('myApp',['ui.router','googlechart','smart-table']);
app.config(['$stateProvider', '$urlRouterProvider',
function ($stateProvider,$urlRouterProvider){
$stateProvider
.state('home',{
url: '/home',
templateUrl: 'app/views/home.html',
controller: 'homeController'
})
.state('hydstra',{
url: '/hydstra',
templateUrl: 'app/views/hydstra.html',
controller: 'hydstraController'
})
.state('hydrotel', {
url: '/hydrotel',
templateUrl: 'app/views/hydrotel.html',
controller: 'hydrotelController'
})
.state('hydrotel.overview',{
url: '/overview',
templateUrl: 'app/views/hydrotelOverview.html',
controller: 'overviewController'
})
.state('hydrotel.interfaces',{
url: '/interfaces',
templateUrl: 'app/views/Interfaces.html',
controller: 'interfaceController'
})
.state('hydrotel.dataTransfer',{
url: '/dataTransfer',
templateUrl: 'app/views/dataTransfer.html',
controller: 'dataTransferController'
});
$urlRouterProvider.otherwise('/home');
}]);
如果这还不够信息,请告诉我。
如果你只使用<a ui-sref="home">Home</a>
而不是<a href="/home">Home</a>
它应该可以解决问题。当您使用 ui-router 时,最好链接到状态而不是 url。ui-sref 将在浏览器中添加 href。
UI路由器,你只需要记住状态。 <a data-ui-sref="home">Home</a>
.请注意,即使您在UI-Router中使用<a href="">
,就像在ng-router中一样,它仍然可以工作。但这不是最佳做法。如果要使用此方法<a href="">
可以使用$routeProvider
而不是$stateProvider
相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- Angular JS/UI Router:为给定状态禁用指令
- 使用AngularJS中的$stateProvider和ui.router
- 带有ui.router的带角度的嵌套视图
- AngularJS ui-router:如何全局解析所有路由的典型数据
- Angularjs 应用程序不会使用 ui-router 路由回主页
- AngularJS - 使用 UI-Router 进行动态路由
- AngularJs 和 Angular-UI-Router 路由权限
- AngularJS ui-router 中的 URL 路由参数
- ui-router动态路由问题
- AngularJS UI Router:路由冲突,因为可选参数
- 在UI-Router的嵌套路由中,子状态加载父状态templateUrl
- 如何使用正确url的ui-router路由解决错误页面
- AngularJS ui router -我如何忽略某些路由?
- 在AngularJS中使用ui-router路由
- Ui-router -使用相同的路由加载模板和子视图
- UI-Router和子路由中的可选参数,无需重新加载控制器
- UI-Router路由在同一个视图(view和Edit)
- Angular UI-Router基于API Ajax调用的slug动态路由.基于弹头的载荷视图
- 当angular-ui-router改变路由时,Facebook的社交插件就会消失