Angularjs $http不是ag网格中的函数错误

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 = [{

我使用角度网格(ag网格)来显示数据。在我的表中,每当用户通过内联编辑添加注释时,我都打算进行rest调用并将注释保存在DB中。我在
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
调用。