gpt4 book ai didi

javascript - AngularJS 中的参数化 $http 响应处理函数

转载 作者:行者123 更新时间:2023-12-03 09:33:48 25 4
gpt4 key购买 nike

我试图将查询字符串作为参数与“$http”一起传递给函数,以获取使用 Angular 返回的一些数据(请参见下面的代码)。

我确信这是一些基本的东西,但我花了 2 天的时间浏览 Stack Overflow、ProAngularJS 书籍、w3c 在线 Javascript 和 Angular 文档、Code Academy angularJS...并且我确实陷入了困境。

如果我从函数调用中删除“SELECT”并从函数定义中删除查询字符串参数,它可以正常工作,但我需要将查询字符串作为参数传递给函数...

下面的代码...

<html>
<head>
<title>HHLDSummaryProj </title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular- route.min.js"></script>
<script>
var summaryApp = angular.module("summaryApp", ['ngRoute']);

summaryApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/viewCounts', {
templateUrl: 'count.htm',
controller: 'topSummaryCtrl'
}).
otherwise({
redirectTo: '/viewCounts'
});
}]);

/* inject $scope object and data retrieval factories */
summaryApp.controller('topSummaryCtrl', function($scope, itemSummary){

itemSummary.success(function(response, "SELECT") {
$scope.itemSummaryResults = response.results.bindings;
});
});

summaryApp.factory('itemSummary', function($http, querystring){
/* 1 count of data triples */
var query = encodeURIComponent(querystring+' (COUNT(*) AS ?no) { ?s ?p ?o }');
var endpoint = "http://localhost:3030/dataset/query";
return $http.get("http://localhost:3030/dataset/query?query="+query+"&output=json&stylesheet=")
});
</script>
</head>

<body>
<h2>Your Data Looks Like This ... </h2>
<div ng-app="summaryApp">
<div ng-view></div>
<script type="text/ng-template" id="count.htm">
<table>
<tr ng-repeat="x in itemSummaryResults">
<td>Count of data "records" or "triples": {{ x.no.value }} </a></td>
</tr>
</table>
</script> <!-- end viewCounts -->
</div>

</body>
</html>

最佳答案

如何将数据传递到工厂的非常基本的示例:

var summaryApp = angular.module("summaryApp", [])

.controller('topSummaryCtrl', ['$scope', 'itemSummary', function($scope, itemSummary) {

itemSummary.getItems("12345").success(function(response) { //"12345" is the value passed to the factory
console.log(response);
}).error(function(response){
console.log(response);
});

}]).factory('itemSummary', ['$http', function($http) {

return {
getItems: function(querystring) { //querystring equals to "12345"
return $http.get("http://echo.jsontest.com/uid/" + querystring + "/value/nuno_bettencourt");
},
pushItems: function(object) {
//do what you want etc etc "itemSummary.pushItems()"
}
};

}]);

这是你所需要的吗?

在您的示例中,您将“querystring”变量作为依赖项传递,例如服务、工厂、提供程序...

另一件事...您确定要将完整的 sql 查询作为 URL 参数传递吗?删除表、 chop 表...

关于javascript - AngularJS 中的参数化 $http 响应处理函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403714/

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