为什么AngularJS从搜索栏中删除了我的部分URL ?
Why is AngularJS removing part of my URL from the search bar
我正在尝试为CRUD站点设置状态提供程序。
当我转到www.mysite.com/posts/mypost
时,URL被截断到www.mysite.com/mypost
,它不会触发控制器。当我使用AngularJS的routeProvider时,这个错误不会持续存在,但是默认的提供程序对于我想做的事情来说不够强大。我假设在stateProvider决定下一步做什么之前,有东西截断了URL,但我不知道是什么原因造成的。如何阻止statprovider(或任何罪魁祸首)截断?
以下是代码的一部分:
$stateProvider.state('posts',{
url: '/posts',
templateUrl: localized.partials + '/post-list.html',
controller: 'loopController'
}).state('post',{
url: '/posts/:post/',
templateUrl: localized.partials + "/post-single.html",
controller: 'singlePostController'
}).state('pages',{
url: '/pages',
templateUrl: localized.partials + '/page-list.html',
controller: 'pagesController'
}).state('page',{
url: '/pages/:page',
templateUrl: localized.partials + '/page-single.html',
controller: 'singlePageController'
});
app.controller('singlePostController',
['$scope', '$stateParams', 'Post', function ($scope, $stateParams, Post)
{
$http.get(resturl +'/posts/'+$stateParams.post).
success(function(s){
console.log(s);}).
error(function(e){
console.log(e)});
}
]);
你的post
状态后面的斜杠是导致你悲伤的原因。要直接激活该状态,您需要遵循您定义的模式—包括末尾的斜杠。这看起来像…
www.mysite.com/posts/mypost/
你有一些选择来解决这个问题。您可以从状态定义中删除尾随斜杠,如下所示…
}).state('post',{
url: '/posts/:post'
...
或者按照ui-router FAQ页面上的建议实现以下逻辑来处理这个
如何:为所有路由设置可选的尾斜杠
这实际上驱动了一些额外的配置,如下所示
$urlMatcherFactoryProvider.strictMode(false);
$urlRouterProvider.rule(function ($injector, $location) {
var path = $location.url();
// check to see if the path already has a slash where it should be
if (path[path.length - 1] === '/' || path.indexOf('/?') > -1) {
return;
}
if (path.indexOf('?') > -1) {
return path.replace('?', '/?');
}
return path + '/';
});
注意:app/scripts/app.js中的所有路由都必须重新定义/。这意味着像/things/:id这样的路由会变成/things/:id/as
相关文章:
- 表单提交问题,如何在我的URL末尾获得ID的值
- 我的URL重定向安全吗
- 如何在PHP中使用url保护我的图像和文件夹免受直接访问
- 在我的图库(jQuery)中使用箭头导航时,更改URL中的哈希
- 我的 AJAX 请求对象无法正确解析 URL 的协议部分
- 选择下拉列表需要在选中时显示提供商的详细信息-无法通过我的脚本显示url
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 对于多个视图,当URL更改时,我的子模板不会在Angular UI中加载
- 如何将用户名附加到我的 ./profile/
URL 中,以便每个用户都有一个唯一的页面.-意思 - - Javascript 如何获取我的特定 URL 的 URL 值
- Facebook页面插件不接受我的页面URL
- 如何使用Angular$location通过动态更改其键值params来设置我的新url位置
- 我的代码URL输出是不正确的
- 我如何修改我的JS代码与我的新URL结构的工作
- 未知字符串'%3Ca%20目标='在我的网站URL中
- Regex没有解析出我的图像url
- 添加一个额外的单词来添加我的所有URL
- 使用 Javascript 从我的 Windows URL 获取基本 URL 和文件路径
- 为什么AngularJS从搜索栏中删除了我的部分URL ?
- 如何使用javascript,如果在我的项目url重定向