javascript - Angular 未知提供商且无法发布/注册

标签 javascript angularjs mean-stack

在你说什么之前,我知道解决方案可能是注入(inject)依赖,但我检查了其他开源代码并与我的比较,它是完全一样的。他们的工作而我的不工作

目前问题出在路由“/signup”

我得到错误:错误:unpr 当我在路由“/signup”处检查控制台时,未知提供商并且

每当我转到“/signup”路线并按提交按钮时,它应该会点击 api 并重定向到“/”,但我得到的是“无法 POST/signup”。

当我使用 POSTMAN 时,API 工作得很好,我认为问题出在 Angular 上。

index.html(脚本的顺序重要吗?)

<!DOCTYPE html> 
<html ng-app="MyApp">
<head>
    <title></title>
    <base href='/'> 
    <!-- load bootstrap from CDN and custom CSS -->
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
    <!-- <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css"> -->
    <link rel="stylesheet" href="assets/css/bootstrap.min.css">

    <!-- JS -->
    <!-- load angular and angular-route via CDN -->
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular-route.js"></script>

    <script src="app/app.js"></script>
    <script type="text/javascript" src="app/controllers/userController.js"></script>
    <script type="text/javascript" src="app/services/factories.js"></script>


</head>
<body>


    <div ng-view></div>

</body>
</html>

app.js

angular.module('MyApp', ['ngRoute'])

    .config(function($routeProvider, $locationProvider) {

        $routeProvider

            .when('/', {
                templateUrl: 'app/views/home.html',
                controller: 'HomeController'

            })

            .when('/signup', {
                templateUrl: 'app/views/signup.html',
                controller: 'SignUpController'
            });

        $locationProvider.html5Mode(true);  
    }) 

userController.js

 angular.module('MyApp')

    .controller('SignUpController', function($scope, User) {


        // sign up the user
        $scope.signup = function() {

            User.create({
                name: $scope.name,
                username: $scope.username,
                password: $scope.password
            });

        }


    });

工厂.js

angular.module('MyApp')

.factory('User', function($http, $alert, $window, $location) {


    var userFactory = {};

    userFactory.create = function(userData) {
        return $http.post('/api/signup', userData)
            .then(function(data) {
                $window.localStorage.setItem('token', response.data.token);
                $location.path('/');
            });
    }


    return userFactory;

});

注册.html

<div class="span3 well">
      <legend>New to Project626? Sign up!</legend>
    <form method="post" ng-submit="signup()">
        <input class="span3" name="name" placeholder="Full Name" type="text" ng-model="name"> 
        <input class="span3" name="username" placeholder="Username" type="text" ng-model="username">
        <input class="span3" name="password" placeholder="Password" type="password" ng-model="password"> 
        <button class="btn btn-primary" type="submit">Sign up for Project626</button>
    </form>
</div>

我喜欢这种 Angular 写作方式,因为它对我来说更干净。供您引用,我上面提到的开源是 https://github.com/sahat/tvshow-tracker/blob/master/public/controllers/signup.js

最佳答案

你没有添加

<script src="angular-route.js">

订单必须是这样的:

  <script src="app/app.js"></script>
  <script type="text/javascript" src="app/services/factories.js"></script>
  <script type="text/javascript" src="app/controllers/userController.js"></script>

这就是为什么它显示未知的路由提供商。

关于javascript - Angular 未知提供商且无法发布/注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28403502/

相关文章:

javascript - jQuery AJAX PUT 具有空的 QUERY_STRING 和 REQUEST PHP 变量

javascript - Internet Explorer 9 是否会因为数组和对象文字末尾的额外逗号而窒息?

javascript - 如何在 jQuery 中访问 AngularJS {{curly-brace-value}}

javascript - 重用需要 `ui-route` d 参数的 `resolve` Controller

mysql - 提供正确的 sequelize.js 对象连接到数据库( Multi-Tenancy 应用程序)

node.js - 将没有端口号的域名链接到 nginx 托管的 MEAN stack 服务器

javascript - Strapi 内容类型和组件之间有什么区别?

javascript - OOP -executeSql 将结果返回到 var 中,它显示未定义

javascript - 如何在本地文件夹上调用json

node.js - AngularJS : socket. io 销毁套接字