如何用ngRoute创建导航路由
How to create navigation routes with ngRoute?
我正在尝试创建以下简单的导航:
html:<html ng-app="myapp">
<body>
<ul>
<li><a href="pages/sub1">sub1</a></li>
<li><a href="pages/sub2">sub2</a></li>
</ul>
<div ng-view></div>
<script src="myscript.js"></script>
</body>
</html>
js:
var app = angular.module('myapp', ['ngRoute']);
app.config(function($routeProvider, $locationProvider) {
$routeProvider.when("/pages/sub1", {
templateUrl : "templates/sub1.html",
controller : "sub1Controller"
}).when("/pages/sub2", {
templateUrl : "templates/sub2.html",
controller : "sub2Controller"
}).otherwise({
templateUrl : "templates/error.html"
});
$locationProvider.html5Mode(true);
});
结果:点击链接时URL路径更改为localhost/pages/sub1
,如预期的那样。但是 ng-view没有更新,仍然是空白!为什么?
我认为你应该在锚标记的href字段的url前添加#。
将你的代码替换为:
<li><a href="#/pages/sub1">sub1</a></li>
<li><a href="#/pages/sub2">sub2</a></li>
参考jsFiddle
我做了两个调整:1. 添加/to link:
<li><a href="/pages/sub1">sub1</a></li>
2。为config:
添加requireBase: false$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
我也把模板内HTML只是为了使它在片段内工作。满examplae:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>AngularJS Routing</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular-route.js"></script>
</head>
<body ng-app="myapp">
<ul>
<li><a href="/pages/sub1">sub1</a></li>
<li><a href="/pages/sub2">sub2</a></li>
</ul>
<div ng-view></div>
<script>
var app = angular.module('myapp', ['ngRoute']);
angular.module('myapp').controller('sub1Controller', function () {
});
angular.module('myapp').controller('sub2Controller', function () {
});
app.config(function($routeProvider, $locationProvider) {
$routeProvider.when("/pages/sub1", {
templateUrl: "/templates/sub1.html",
controller: "sub1Controller"
}).when("/pages/sub2", {
templateUrl: "/templates/sub2.html",
controller: "sub2Controller"
}).otherwise({
templateUrl: "/templates/error.html"
});
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
});
</script>
<script type="text/ng-template" id="/templates/sub1.html">
First View
</script>
<script type="text/ng-template" id="/templates/sub2.html">
Second View
</script>
<script type="text/ng-template" id="/templates/error.html">
404
</script>
</body>
</html>
相关文章:
- 如果找不到路由,则以程序方式导航到服务器页面
- React路由器:防止导航到目标路由
- 主干路由器导航到../#/<路由>而不触发路由器事件.如何
- 反应.js - 导航路由时控制台中的错误
- 父路由器激活功能在每次导航到其子路由时运行
- AngularJS$locationChangeStart事件取消路由导航
- 单击链接时,我如何定义导航到详细信息页面的路由
- 使用backbone.js路由区分前后导航
- 使用AngularJS的ASP.NET 5路由导航
- React-Router使用jQuery导航路由
- Angular.js的路由和部分用于复杂的导航
- Nodejs / express - fresh install在尝试导航到路由时失败
- 在控制器中测试Ember.js的路由导航
- 如何用ngRoute创建导航路由
- 为什么AngularJS的服务在从一个路由导航到另一个路由时没有定义?
- 从Javascript正确导航到React路由
- 如何使用React + React- router - component手动导航到路由
- 在Ember.js中重新导航到当前路由
- 用AngularJS关联路由和导航样式
- AngularJs:基于路由隐藏导航栏元素