gpt4 book ai didi

javascript - AngularJS Controller 在注入(inject)工厂时抛出错误

转载 作者:行者123 更新时间:2023-11-30 16:58:03 25 4
gpt4 key购买 nike

我是 Angular 的新手,正在构建我的第一个 Angular 应用程序。我有我的投资组合网页,我想从外部来源获取数据并将其提供给所有 Controller 。

这是我的 html:

<!DOCTYPE html>
<html ng-app="portfolioApp">
<head lang="en">
<meta charset="UTF-8">
<title>Mithun Mathew</title>
<link rel='shortcut icon' href='images/favicon.ico' type='image/x-icon'/>
<link rel="stylesheet" href="styles/style.css" type="text/css">

<!-- Angular Import-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>

<!-- Angular Main Module -->
<script type="text/javascript" src="portfolioApp.js"></script>

<!-- Angular Controllers -->
<script type="text/javascript" src="controllers/dataRetrieve.js"></script>



</head>
<body ng-controller="FirstCtrl">

<me></me>

</body>
</html>

我的js文件:投资组合App.js

angular.module('portfolioApp',[])
.factory('Data', ['$scope', '$http', function DataFactory ($scope, $http) {
var dataCtrl = this;

$http({
method: 'GET',
url: 'http://someurl/'
}).success(function (data) {
dataCtrl.data = data;
console.log(data);
}).error(function (error) {
console.log("Hey! Something went wrong while loading. :(");
});


return function(){
return dataCtrl.data;
}
}]);

数据检索.js

angular.module('portfolioApp',[])
.controller('FirstCtrl', function(Data) {
console.log('Hello');
console.log(Data());
});

当我将数据注入(inject) Controller 时,Angular 抛出一个错误。我该如何克服这个问题?我用谷歌搜索、观看了 YouTube 视频和 CodeSchool,但无法弄清楚为什么会抛出错误。

最佳答案

请注意,当您创建第二个与 [] 同名的新模块时,第一个模块将被覆盖。

例如:

你创造

angular.module('portfolioApp',[]).factory('....

angular 将创建一个名为 portfolioApp 的新模块,因为模块名称后有 []

然后

angular.module('portfolioApp',[])
.controller('FirstCtrl',....

您尝试使用 [] 创建一个与之前同名的模块,这样 angular 将用这个模块覆盖第一个模块,所以您之前的模块此时不再存在,所以没有名为 Data

的工厂

所以只需从第二个模块声明中删除 [] 然后 angular 将不会覆盖前一个模块,而 angular 将扩展模块,

angular.module('portfolioApp')
.controller('FirstCtrl', fu...

关于javascript - AngularJS Controller 在注入(inject)工厂时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29360769/

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