Angularjs $http不是ag网格中的函数错误
我使用角度网格(ag网格)来显示数据。在我的表中,每当用户通过内联编辑添加注释时,我都打算进行rest调用并将注释保存在DB中。我在Angularjs $http不是ag网格中的函数错误,angularjs,angular-grid,ag-grid,Angularjs,Angular Grid,Ag Grid,我使用角度网格(ag网格)来显示数据。在我的表中,每当用户通过内联编辑添加注释时,我都打算进行rest调用并将注释保存在DB中。我在newValueHandler中放置了$http东西来进行rest调用。在调试器中,我看到调用了newValueHandler,但未定义$http。然后我得到一个错误:uncaughttypeerror:$http不是一个函数 function CompletedActionsCtrl($scope, $http) { var columnDefs = [{
newValueHandler
中放置了$http
东西来进行rest调用。在调试器中,我看到调用了newValueHandler
,但未定义$http
。然后我得到一个错误:uncaughttypeerror:$http不是一个函数
function CompletedActionsCtrl($scope, $http) {
var columnDefs = [{
headerName: "Comments",
field: "comments",
width: 180,
filter: 'text',
editable: true,
newValueHandler:addCommentHandler,
valueGetter: function (params) {
if (params.data.comments != null) {
return params.data.comments[0];
}
}
}]
function addCommentHandler(params,$http){
var url = "./postComment";
$http({method: 'GET',url: url
}).then(function successCallback(response) {}, function errorCallback(response) {});}
//==Controller invoker==
var app = angular.module('app', ['ngRoute', 'agGrid']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/completed_actions', {
templateUrl: 'completed_actions_partial.html',
controller: CompletedActionsCtrl
});
}]);
这似乎是一项微不足道的任务,我确信我遗漏了一些基本的东西
补充:Javascript和angularjs的新特性
==代码流解释==
当用户点击completed actions选项卡时,路由将调用CompletedActionsCtrl。在该控制器内,准备并渲染网格。现在,当用户编辑并提交注释时,将调用newValueHandler
,即函数addCommentHandler
==更新==
通过定义一个匿名函数,而不是将私有函数作为处理程序调用,使其正常工作
所以删除了这个->
newValueHandler:addCommentHandler,
并添加了这个->
newValueHandler:function(params){
var url = "./postComment";
$http({method: 'GET',url: url})
.then(function successCallback(response) {},
function errorCallback(response) {});},
但问题是我需要在很多地方使用这个处理程序,这种方法会导致大量代码重复。有更好的主意吗?从函数中删除
$http
,您在addCommentHandler
函数中添加的参数正在使现有的$http
服务消失
代码
function addCommentHandler(params){ //<-- removed $http paramter function.
var url = "./postComment";
$http({method: 'GET',url: url
})
.then(function successCallback(response) {},
function errorCallback(response) {});
}
function addCommentHandler(params){/从方法声明中删除$http,您正在尝试向私有方法注入角度服务!控制器代码在哪里,从哪里调用该函数?您是否尝试将其作为参数传递?controller:[“$scope”,“$http”,CompletedActionsCtrl($scope,$http)]
是的。它不起作用。遵循此链接可能会对您有所帮助,它会将apitoken
参数传递给另一个参数:谢谢。但我仍然收到错误。uncaughtreferenceerror:$http未定义
谢谢。但我仍然收到错误。uncaughtreferenceerror:$http未定义
要使用$http
angularjs服务您需要将其注入控制器使用此方法,请向我展示您的控制器代码?谢谢!在Qs中添加了它。请查看/==控制器调用器==
下的代码和代码流说明。我想您这里的问题是您对控制器的处理方式,CompletedActionsCtrl
不知道是什么在$http is,检查plz如何声明控制器,然后在[]对于控制器,您可以插入一个angularjs服务,如$http,并在您的函数中使用它们。但我正在CompletedActionsCtrl
中注入$http
。此外,如果我在这个控制器中使用$http
,那么它也可以正常工作。问题是我不能在私有函数中使用$http
(addCommentHandler
在本例中)从CompletedActionsCtrl
调用。