Angular Routing & the ng-view
Angular Routing & the ng-view
angular怎么知道要向包含'ng-view'元素的模板视图发出请求?
如果我在应用程序中直接导航到
http://localhost/Categories/List/accessories
。因为索引模板中包含了渲染所有视图所需的'ng-view'元素,所以仍然会向'/或索引模板'发出请求。
当我从索引导航到/Categories/List/accessories时,没有再次请求索引。
下面是我的基本路由,部分复制自GitHub上的Angular MVC"CookBook"示例
angular.module('myApp', ['myApp.ctrl.list'])
.config(['$routeProvider', '$locationProvider', function ($routeProvider) {
$routeProvider.when('/', {
templateUrl: '/Home/Splash',
});
$routeProvider.when('/Categories/List/:slug', {
templateUrl: '/Categories/List',
controller: 'listCtrl',
});
$routeProvider.otherwise({
redirectTo: '/'
});
}]);
在你的路由配置中,我相信你的示例url缺少一个井号(#),所以它应该看起来像:
http://localhost/#/Categories/List/accessories
#符号后面的部分是AngularJS打算解析的路径(例如:您定义的路由配置)
当您在浏览器地址栏中输入上述URL时,浏览器会自动在localhost
上查找index.html
。当URL中只有域名时,大多数浏览器(如果不是全部的话)都设置为查找index.html。
#符号后面的部分呢?你可能会问。根据定义,#符号之后的路径不会被发送到服务器,因此浏览器不太关心该部分是由什么组成的。
在你提到的第二个场景中,AngularJS不请求index.html
,因为它在第一次加载时就被缓存了,并且使用了缓存的副本。
您的locationProvider是否配置为HTML5?
$locationProvider.html5Mode(true);
参见Using HTML5 pushstate on angular.js
相关文章:
- 如何为通过ng-view指令或ng-controller指令创建的每个新作用域设置侦听器
- ng-view 中的脚本在从文件引用时不起作用(JQuery 在角度之前加载)
- ng-animate 当 ng-view 通过路由更新时
- ng-view 无法呈现
- 在 $location.path() 更改后的另一个 ng-view 中触发事件
- 在AngularJs中无法加载ng-view
- AngularJS 1.3 - 错误:错误:modulerr 模块错误(使用 ng-view,$routeProvide
- 在路由配置中定义 AngularJS 中的 ng-view 动画
- AngularJS无法从ng-view访问ng-click
- angularjs ng-view - jQuery 插件问题 - 需要建议
- ng-view - 模板页面中的加载控制器
- ng-view在AngularJS中不起作用
- Defining ng-view="NAME" from RouteProvider
- 引导切换复选框在 ng-view 中不起作用
- .js没有应用于ng-view
- AngularJs ng-view来更改父控制器的值
- jQuery Bxslider 不适用于 NG View 中的模板
- 适用于 ngRoute、ng-view 和代码复制的最佳实践
- 带有引导 3 手风琴的 AngularJS 在通过 ng-view 包含时不起作用.
- Angular Routing & the ng-view