链接无法使用angular ui路由器
Links not working with angular ui-router
所以我已经设置了ui路由器,几分钟前它就可以工作了,它会显示带有从另一个html文件加载的内容的模板,但没有一个链接可以工作。现在什么都不起作用:模板出现了,但内容没有被拉入,并且没有任何链接起作用。
Ctrl.js
var site = angular.module('site', ['ui.router']);
site.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('page', {
url: '/page',
templateUrl: 'page.html',
})
.state('about', {
url: '/about',
templateUrl: 'about.html',
});
$urlRouterProvider.otherwise('/page');
})
Index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="https://angular-ui.github.io/ui-router/release/angular-ui-router.js"></script>
<script src="scripts/ctrl.js"></script>
<link rel="stylesheet" href="style/main.css">
</head>
<body ng-app="site">
<nav class="navbar navbar-default navbar-fixed-top" id="navigate">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navSmall">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="navSmall">
<ul class="nav navbar-nav navbar-right">
<li><a href="#/about.html">about</a></li>
</ul>
</div>
</div>
</nav>
<div class="jumbotron text-center container-fluid">
<div ui-view></div>
</div>
<footer class="footer">
<div id="note" class="container">
<div class="row">
<div class="col-sm-8">
-----Footer Content-----
</div>
<div class="col-sm-4">
</div>
</div>
</div>
</footer>
</body>
</html>
About.html(应加载但未加载(
<div ui-view="about">
<div class="container-fluid bg-about">
<div class="container-content">
<div class="row">
</div>
</div>
</div>
</div>
哇,你们都快!谢谢你的建议。所以更新:将其更改为ahref="#/about"
有助于我现在可以转到链接,但仍然没有内容显示。控制台错误:
Error: Access to restricted URI denied
fg/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:103:167
n@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:98:460
m/g<@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:95:489
e/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:130:409
uf/this.$get</m.prototype.$eval@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:145:103
uf/this.$get</m.prototype.$digest@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:142:165
uf/this.$get</m.prototype.$apply@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:145:399
Ac/c/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:21:115
h/<.invoke@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:41:374
Ac/c@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:21:36
Ac@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:21:332
fe@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:20:156
@https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js:315:135
g/</j@https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js:2:29566
g/</k<@https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js:2:29882
angular.min.js:117:399
您的状态URL是/about
,而不是/about.html
。
在任何情况下,使用ui-sref
指令,这就是的作用
<a ui-sref="about">about</a>
您只需传入状态名称(以及任何参数,请参阅文档(,它就会为您创建正确的URL,同时考虑任何$locationProvider.html5mode
配置。
如果您通过file:///some/path/to/index.html
加载应用程序,则对模板(即about.html
(的AJAX请求可能不起作用。您应该使用HTTP服务器进行本地开发。
看看(甚至只是克隆作为基础(棱角分明的种子项目。它为首次进行Angular开发提供了一个极好的起点。
您的状态URL 错误
您的代码<li><a href="#/about.html">about</a></li>
您可以通过浏览器中的URL访问状态,但引用应用程序的其他部分是一种糟糕的做法,尽管它仍然适用于
<li><a href="#/about">about</a></li>
执行此操作
<li><a ui-sref="about">about</a></li>
您的状态URL是错误的,是/about not/about.html
试试这个
<li><a ui-sref="about">about</a></li>
要使链接工作,您需要使用
<a href="#/about">about</a>
而不是
<a href="#/about.html">about</a>.
同样,对于要拉入的内容(如数据绑定(,您需要使用控制器。
试试这个,只需确保test.html在那里。
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.js"></script>
<script>
var module = angular.module("sampleApp", ['ngRoute']);
module.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/route1', {
controller: 'myCtrl',
templateUrl: 'test.html'
}).
otherwise({
redirectTo: '/'
});
}]);
module.controller("MainController", function($scope) {
});
module.controller("myCtrl", function($scope) {
$scope.my = 10;
ab = function() {
alert($scope.my);
}
});
</script>
</head>
<body ng-app="sampleApp">
<div ng-controller="MainController">
<a href="#/route1" role="button">Route</a>
<ng-view>
</ng-view>
</div>
</body>
</html>
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- 如何在Angular UI网格中选择下一行
- 使用按钮的Angular UI网格过滤器
- Angular UI启动日期选择器问题
- 在Angular ui路由器中,如何将事件从一个视图发送到另一个视图
- 带有嵌套状态的Angular ui路由器和后退按钮
- Angular UI-GRID未在页面上显示网格
- 初始化ng模型时,Angular ui选择占位符不起作用
- Ionic + Angular ui-sref not generating href
- 在日期更改后更新Angular UI引导程序日期选择器选项
- Angular ui路由器中的绝对名称
- 访问url[材质Ui+选项卡]时,Angular Ui路由器未加载视图
- 无法将行保存在Angular UI网格中的可展开行中
- Angular UI路由器-检查父状态
- angular ui boostrap日期选择器显示年份第一
- angular ui bootstrap:当模式关闭时,promise被解析/拒绝
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 将图像传递到Angular UI引导旋转木马
- Angular UI Select2指令搜索功能不起作用