gpt4 book ai didi

javascript - 即使提到了所有依赖项,angularjs 也会显示注入(inject)器错误

转载 作者:行者123 更新时间:2023-11-30 00:07:29 24 4
gpt4 key购买 nike

我是新来的。我正在编写一个简单的 Angular 应用程序。我已经为该模块和工厂创建了一个模块和一个 Controller 。我将依赖项添加到 Controller ,但是出现注入(inject)器错误。我只是不明白我哪里出错了。

这是我的 Angular 代码:

var app = angular.module("bookApp",[]);
app.config(['$interpolateProvider',function($interpolateProvider) {
$interpolateProvider.startSymbol('{[{');
$interpolateProvider.endSymbol('}]}');
}]);;app.controller("mainController",["$scope", "$http", "titles",function($scope, $http, titles){
$scope.titles = [{}];
titles.getTitles();
}]);
app.factory("titles",["$scope","$http",function($scope, $http){
var getTitles = function(){
$http.get("http://localhost:8000/getTitles")
.then(function(response) {
$scope.titles = response.data;
});
}

var addTitle = function(){
var data = $.param({
json: JSON.stringify({
title: $scope.book.bookname
})
});
$http.post("http://localhost:8000/addTitle",data).success(function(response, status){
$scope.titles = response.data;
});
}
return{
getTitles: getTitles
}

}]);

我的 html:

<body ng-app="bookApp">
<div class="container">
<div>
<table id="recordTable" ng-controller="mainController">
<thead>
<tr>
<th>S.No</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="title in titles">
<td>{[{title.id}]}</td>
<td>{[{title.bookname}]}</td>
</tr>
</tbody>
</table>
</div>

</div>
</body>

我收到以下错误:

http://errors.angularjs.org/1.5.7/$injector/unpr?p0=%24scopeProvider%20%3C-%20%24scope%20%3C-%20titles

我不明白这里的问题。 “标题”服务在那里,但它仍然给出注入(inject)器错误。

最佳答案

基本上,您已将 $scope 注入(inject)到工厂中,而这无法注入(inject)到工厂中。您必须从工厂依赖项数组中删除 $scope 依赖项工厂代码。

If you look at the definition of factory/service, they are sigletone object which are applicable throughout the application to provide common functionality between different components of angular application.

你应该像下面那样彻底从工厂中删除范围,我在工厂中所做的主要更改是返回 $http.get 方法的 promise 对象。

工厂

app.factory("titles",["$http",function($http){
var getTitles = function(){
return $http.get("http://localhost:8000/getTitles")
.then(function(response) {
return response.data;
});
}

var addTitle = function(book){
var data = $.param({
json: JSON.stringify({
title: book.bookname
})
});
return $http.post("http://localhost:8000/addTitle",data).success(function(response, status){
return response.data;
});
}
return{
getTitles: getTitles,
addTitle: addTitle
}

}]);

Controller

app.controller("mainController",["$scope", "$http","titles",
function($scope, $http, titles){
//$scope.titles = [{}];
titles.getTitles().then(function(data){
$scope.titles = data;
});
}
]);

关于javascript - 即使提到了所有依赖项,angularjs 也会显示注入(inject)器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37952087/

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