gpt4 book ai didi

javascript - 错误 : [ng:areq] from angular controller

转载 作者:IT王子 更新时间:2023-10-29 02:52:44 25 4
gpt4 key购买 nike

这不太可能,但是有人以前见过这个错误吗?我正在尝试使用 express、angular 和 mongoDB 添加“Transporters”。每当我访问由传输 Controller 控制的页面时,我都会收到此错误:

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

运输车 Controller 看起来像这样:

'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 的 Angular 文档中得到了这个虽然还是搞不懂是怎么回事

AngularJS often asserts that certain values will be present and truthy using a helper function. If the assertion fails, this error is thrown. To fix this problem, make sure that the value the assertion expects is defined and truthy.

这是调用 Controller 的 View 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']);

关于javascript - 错误 : [ng:areq] from angular controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21673404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com