我有一个带有服务的应用程序,该服务包装了我的API调用:
var ConcernService = {
...
get: function (items_url, objId) {
var defer = $q.defer();
$http({method: 'GET',
url: api_url + items_url + objId}).
success(function (data, status, headers, config) {
defer.resolve(data);
}).error(function (data, status, headers, config) {
console.log('ConcernService.get status',status);
defer.reject(status);
});
return defer.promise;
},
并且我正在使用UI-Router在状态之间进行转换:
concernsApp
.config( function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/404/");
$stateProvider.state('project', {
url: '/project/:projectId/',
resolve: {
project: function ($stateParams, ConcernService) {
return ConcernService.get('projects/', $stateParams.projectId);
},
},
views: {
...
}
});
我不再使用普通的AngularJS路由器,并且难以理解如何实现404。我可以看到ConcernService
抛出console.log
状态被拒绝,但是如何在状态路由器中捕获它呢?
otherwise()
仅当没有其他 路由
匹配时才调用该规则。您真正想要的是拦截$stateChangeError
事件,即在状态转换中出现问题(例如,解析失败)时触发的事件。您可以在状态更改事件文档中阅读有关此内容的更多信息。
您要执行的操作的最简单实现是这样的:
$rootScope.$on('$stateChangeError', function(event) {
$state.go('404');
});
同样,由于$http
它本身是基于promise(可resolve
解析)构建的,因此您的ConcernService
方法可以简化为单一格式(我知道您是出于调试目的而对其进行扩展的,但是可以像FYI一样轻松地将其链接起来):
var ConcernService = {
get: function (items_url, objId) {
return $http.get(api_url + items_url + objId);
}
}
我试图用ApacheCamel和Spring Boot编写我的第一个项目。它应该调用Restendpoint并处理数据,但从未调用我的处理器。我做错了什么? 日志显示路由已启动并且它从“Direct://httpRoute”中消耗。但在最后没有日志表明调用了MyProcess。 pplication.java 我的路线。JAVA pom.xml 日志
问题内容: 自从我开始解决这个问题已经有几个小时了,我似乎无法解决这个问题。 我有一个可能会导致用户实际输入URL的应用程序。在这种情况下,不难相信用户可能会输入斜杠。例如, www.example.com/users/2和www.example.com/edit/company/123 应该与 www.example.com/users/2/和www.example.com/edit/compa
要部署我的应用程序,我能想到的唯一方法是使用Tomcat。因此,我复制了项目的bundle.js和index.html文件,并将其放在eclipse IDE的WebContent中。下面是index.js文件: 因此,当我使用web pack dev server时,我的路由器工作正常,但当我将文件复制到eclipse项目的web content时(这将为我设置一切,并使项目可以使用这个Url h
问题内容: 我正在使用Angular2开发NodeJS应用程序。在我的应用程序中,我有一个主页和搜索页面。对于主页,我有一个将为 localhost:3000 /* 呈现的HTML页面,并且从主页用户导航到 搜索, 即 我由 angular2路由 处理的 localhost:3000 / search 页面。 * 我没有搜索页面的页面,其视图由angular2呈现。但是当我直接点击 localho
试图使某些路由需要身份验证。 我有这个: 注意:是的,身份验证服务正常工作。 对于每个路由,我检查用户是否经过身份验证,如果没有,那么我想将他们重定向到登录页面,如果他们是,那么它将在第一个页面上着陆,路由为"/"。 我得到的只是: 我哪里做错了?
anu可以完美与react-router搭配使用。 但强烈建议使用reach router, 这个比react router更好用。 anujs也对它进行改造,让它支持IE8的hashchange reach的官网 https://reach.tech/router resolve: { alias: { react: "anujs", "react-dom":