Я сам создаю свой проект, чтобы практиковать то, что я узнал о стеке MEAN. В проекте я хочу, чтобы пользователь заполнил форму и после того, как она была сохранена в базе данных, система будет использовать вторую форму, чтобы заполнить ее и т.д. Я являюсь angularjs для переднего конца, и в нем я использую ui.route. По какой-то причине моя программа не переходит ко второй программе. Я уже читал о других людях с одинаковой проблемой, и я не могу найти, что не так с моим алгоритмом. Каждая форма работает сама по себе или когда я делаю вызов с панели инструментов.
Frontend.js
angular
.module('authApp',['auth0', 'angular-storage', 'angular-jwt', 'ngMaterial', 'ui.router',
'AdminUser', 'appProfile', 'appToolbar', 'Mod-Company', 'ModShow'])
.config(function($provide, authProvider, $urlRouterProvider, $stateProvider, $httpProvider, jwtInterceptorProvider,$mdThemingProvider){
/* $mdThemingProvider.theme('docs-dark'); */
$mdThemingProvider.theme('default')
.dark();
$mdThemingProvider.alwaysWatchTheme(true);
authProvider.init({
domain: 'workflowjobs.auth0.com',
clientID: 'SjzgRRh3w4ZEFRGLdglpJYvCPCkM189w'
});
jwtInterceptorProvider.tokenGetter = function(store) {
return store.get('id_token');
}
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'components/home/home.html'
})
.state('company', {
url: '/company',
templateUrl: 'components/company/company.html'
})
.state('singlecompany', {
url: '/singlecompany',
templateUrl: 'components/singlecompany/singlecompany.html'
})
.state('show', {
url: '/show',
templateUrl: 'components/show/show-form.html'
})
.state('ticket', {
url: '/ticket',
templateUrl: 'components/ticket/ticket.html'
})
.state('useradmin', {
url: '/useradmin',
templateUrl: 'components/useradmin/useradmin.html'
})
.state('user', {
url: '/user',
templateUrl: 'components/user/user.html'
})
.state('profile', {
url: '/profile',
templateUrl: 'components/profile/profile.html',
controller: 'profileController',
controllerAs: 'user'
});
Из формы я использую контроллер, который мне нужен, отображает форму, которую должен заполнить пользователь, а затем я вызываю addcompany() после того, как пользователь нажимает кнопку, чтобы сохранить документ в базе данных mongodb.
<section class="table" ng-controller="CompanyCtrl">
<form name="CompanyForm">
...
<input class="form-control" ng-model="company.name" size="40">
...
<p><md-button class="md-raised md-primary md-hue-1" ng-click="addcompany()" aria-label="next">
Теперь в этом коде есть проблема. $ location.path('/adminuser') не работает:
var app = angular.module('Mod-Company', []);
app.controller('CompanyCtrl', ['$scope', '$http',
function($scope,$http){
var refresh = function() {
$http.get('http://localhost:3001/api/company').success(function(response){
$scope.companylist = response;
$scope.company = "";
});
};
refresh();
$scope.addcompany = function(){
$http.post('http://localhost:3001/api/company', $scope.company).success(function(response) {
refresh();
$location.path('/useradmin');
});
$location.path('/useradmin');
};
Вместо использования $location.path('/useradmin');
попробуйте $state.go('useradmin');
,
Если он все еще не работает, вам будет легче помочь, если вы можете поделиться своим кодом на https://jsbin.com или https://plnkr.co
addcompany
, это называется? Я думаю, с этим будет легче найти проблему