当前位置: 首页 > 面试题库 >

错误:角度控制器的[ng:areq]

包翔
2023-03-14
问题内容

这是一个很长的路,但是以前有人见过这个错误吗?我正在尝试使用express,angular和mongoDB添加“
Transporters”。每当我访问由transporters控制器控制的页面时,都会收到此错误:

Error: [ng:areq] http://errors.angularjs.org/1.2.12/ng/areq?p0=TransportersController&p1=not%20aNaNunction%2C%20got%20undefined
    at Error (native)
    at http://localhost:3000/lib/angular/angular.min.js:6:450
    at tb (http://localhost:3000/lib/angular/angular.min.js:18:360)
    at Pa (http://localhost:3000/lib/angular/angular.min.js:18:447)
    at http://localhost:3000/lib/angular/angular.min.js:62:17
    at http://localhost:3000/lib/angular/angular.min.js:49:43
    at q (http://localhost:3000/lib/angular/angular.min.js:7:386)
    at H (http://localhost:3000/lib/angular/angular.min.js:48:406)
    at f (http://localhost:3000/lib/angular/angular.min.js:42:399)
    at http://localhost:3000/lib/angular/angular.min.js:42:67

运输者控制器如下所示:

'use strict';

angular.module('mean.transporters').controller('TransportersController', ['$scope', '$routeParams', '$location', 'Global', 'Transporters', function ($scope, $routeParams, $location, Global, Transporters) {
    $scope.global = Global;

    $scope.create = function() {
        var transporter = new Transporters({
            name: this.name,
            natl_id: this.natl_id,
            phone: this.phone
        });
        transporter.$save(function(response) {
            $location.path('transporters/' + response._id);
        });

        this.title = "';
        this.content = "';
    };

    $scope.remove = function(transporter) {
        if (transporter) {
            transporter.$remove();

            for (var i in $scope.transporters) {
                if ($scope.transporters[i] === transporter) {
                    $scope.transporters.splice(i, 1);
                }
            }
        }
        else {
            $scope.transporter.$remove();
            $location.path('transporters');
        }
    };

    $scope.update = function() {
        var transporter = $scope.transporter;
        if (!transporter.updated) {
            transporter.updated = [];
        }
        transporter.updated.push(new Date().getTime());

        transporter.$update(function() {
            $location.path('transporters/' + transporter._id);
        });
    };

    $scope.find = function() {
        Transporters.query(function(transporters) {
            $scope.transporters = transporters;
        });
    };

    $scope.findOne = function() {
        Transporters.get({
            transporterId: $routeParams.transporterId
        }, function(transporter) {
            $scope.transporter = transporter;
        });
    };
}]);

在我看来,我调用该列表并创建方法。他们产生上述错误

我从ng:areq的有角文档中得到了这个,尽管仍然不知道发生了什么

AngularJS经常断言,使用辅助函数会存在某些值并且是真实的。如果断言失败,则会引发此错误。要解决此问题,请确保声明所期望的值已定义且正确。

这是调用控制器的视图public/views/transporters/list.html

<section data-ng-controller="TransportersController" data-ng-init="find()">
    <ul class="transporters unstyled">
        <li data-ng-repeat="transporter in transporters">
            <span>{{transporter.created | date:'medium'}}</span> /
            <h2><a data-ng-href="#!/transporters/{{transporter._id}}">{{transporter.name}}</a></h2>
            <div>{{transporter.natl_id}}</div>
            <div>{{transporter.phone}}</div>
        </li>
    </ul>
    <h1 data-ng-hide="!transporters || transporters.length">No transporters yet. <br> Why don't you <a href="/#!/transporters/create">Create One</a>?</h1>
</section>

转运服务代码:

angular.module('transporterService', [])
    .factory('Transporter', ['$http', function($http){
        // all return promise objects
        return {
            get: function(){
                return $http.get('/api/transporters');
            },
            create: function(transporterData){
                return $http.post('/api/transporters', transporterData);
            },
            delete: function(id){
                return $http.delete('/api/transporters/'+id);
            }
        };
    }]);

问题答案:

我曾经遇到此错误。问题是我在两个地方用不同的参数定义了angular.module()。

例如:

var MyApp = angular.module('MyApp', []);

在其他地方,

var MyApp2 = angular.module('MyApp', ['ngAnimate']);


 类似资料:
  • 问题内容: 我是Angular JS的新手,正在使用1.6版本。 我有这个脚本: 这是我的数据: 现在这是我的html页面,我在其中指定了ng-app和ng-controller: 我仍然遇到以下错误,这对我来说是新的: angular.js:14239错误:[$ controller:ctrlreg]未注册名称为’productController’的控制器。 http://errors.ang

  • 问题内容: 是否可以通过Chrome的控制台找到元素的控制器?我可以通过在“ 元素面板”中 选择 元素 并使用来获得对该组件的引用 有一个属性(看起来像一个构造函数),但是我不确定该怎么做。有什么办法可以从这里找到控制器的名称吗? 问题答案: 如果您只是这样做(如果您安装了Batarang Chrome扩展程序),则应该能够访问所选元素的作用域的功能和属性。这还应包括控制器在示波器上公开的所有功能

  • 问题内容: 我在javascript上非常糟糕,而且对Angular还是很陌生,所以请耐心等待。 我的服务器返回此消息: services.js controller.js 我正在尝试通过访问服务器返回的json,但我正在获取。 在控制台中,如下所示: 我得到的是一个实例,但是如何直接获取值呢? 如果已在控制器中进行设置,则可以通过模板访问它。 我到底如何在控制器中执行此操作? 问题答案: 从文档

  • 嘿,伙计们,我是angular的新手,对JavaScript不是很熟练。这个设置很好地引入了json数据,但是,当我对对象中的某些属性进行更改时,它们会在我更改视图和重新加载控制器时重置。如有任何关于如何处理这一问题的帮助或指导,将不胜感激。

  • 我收到以下错误,我不确定为什么,因为我直接从模板中运行代码。有人在堆栈跟踪中看到了我没有看到的东西吗?它贴在下面。 “/Cfia中的服务器错误。网状物MVC模板。示例的应用。 远程服务器返回错误:(404)未找到。 描述:在执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源。 异常详细信息:System. Net. WebException:远程服