无法跟踪此问题。我正在为meanjs应用程序中的用户注册添加工作流程,以便管理员必须邀请用户才能允许他们注册。
出于某种原因,无论何时加载邀请表单,都会尝试/api/users/invitation
进行API调用,我没有(据我所知)请求,并且没有任何意义。没有它需要的数据。我假设有些东西在某个地方为我自动连接,但由于这404导致页面失败,我需要杀死它,如果可以的话。
这是我的控制器:
(function () {
'use strict';
angular
.module('users.admin')
.controller('InvitationController', InvitationController);
InvitationController.$inject = ['$scope', '$state', '$window', 'Authentication'];
function InvitationController($scope, $state, $window, Authentication) {
var vm = this;
vm.invitation = {};
vm.sendMail = sendMail;
vm.authentication = Authentication;
function sendMail(isValid) {
if (!isValid) {
$scope.$broadcast('show-errors-check-validity', 'vm.invitationForm');
return false;
}
var invitation = vm.invitation;
// TODO: send to the server
console.log(invitation);
}
}
}());
这是相关的stateprovider片段:
.state('admin.user-invite',{
url: '/users/invitation',
templateUrl: 'modules/users/client/views/admin/invite-user.client.view.html',
controller: 'InvitationController',
controllerAs: 'vm',
data: {
pageTitle: 'Invite a User'
}
})
还有什么想法吗?这是我第一个使用MEAN.js框架的应用程序,虽然我过去使用过角度很多。
答案 0 :(得分:0)
好的,我花了很长时间才意识到这一点,但事实证明,网址匹配是手头的实际问题。
我应该在问题中包含我的全套客户端路线,因为/users/invitation
实际上是宣布的最后一条路线。事实证明,/users/:userId
与之匹配,因此路由器将invitations
解释为userId,并且匹配路由具有解析器功能,该功能反过来试图呼叫我的服务器端用户api。
现在仍在烘烤我的面条的部分(虽然它解决了我当前的问题不太重要)是为什么路由匹配器会这样做,但仍然渲染我分配给{{1}的模板路线?这样做的事实肯定会使调试时间更长,因为匹配的路由分配给它的模板与我预期的路径非常不同。
答案 1 :(得分:-1)
您可以检查开发人员工具中的网络请求吗?它可能是对'/ users / invitation'的请求,但是'/ api'部分在服务器端代码上加了前缀(前缀为路由器??)。