Angularjs TypeError:v2.UpdateData不是函数

Angularjs TypeError:v2.UpdateData不是函数,angularjs,asp.net-mvc-4,Angularjs,Asp.net Mvc 4,我是Angular和MVC的新手,我已经为display创建了一个代码 记录到表视图中 用户可以通过单击“编辑和删除”按钮编辑和删除该记录 链接 但当我点击编辑链接TypeError时,它显示了错误: v2.UpdateData不是一个函数 它还显示了errorTypeError:$http.get不是一个函数 当我点击删除链接 有人能帮我解决这个问题吗。提前谢谢 Controller.js //update data of table $scope.UpdataData

我是Angular和MVC的新手,我已经为display创建了一个代码 记录到表视图中

用户可以通过单击“编辑和删除”按钮编辑和删除该记录 链接

但当我点击编辑链接TypeError时,它显示了错误: v2.UpdateData不是一个函数

它还显示了errorTypeError:$http.get不是一个函数 当我点击删除链接

有人能帮我解决这个问题吗。提前谢谢

Controller.js

    //update data of table
        $scope.UpdataData = [];
        //UpdateData();
        $scope.UpdateData = function (StateMaster) {
            var RetValData = DataService.UpdateStudent(StateMaster);
            debugger;
            getData.then(function (StateMaster) {
                debugger;
                StateID: $scope.StateID;
                StateName: $scope.StateName;
                CountryName: $scope.CountryName;
            }, function () {
                alert('Error in getting records');
            });
    }
 $scope.DeleteData = [];
    $scope.DeleteData = function (r, index) {
        var retval = DataService.DeleteData(r.StateID).success(function (msg) {
            $scope.countrydata.splice(index, 1);
             alert('Student has been deleted successfully.');  
        }).error(function () {
            alert('Oops! something went wrong.');
        });
    }.factory('DataService', function ($http) {
    var fac={}
    debugger;
    fac.UpdateData= function($http)
    {
        return $http.get('/State/UpdateData');
    }
    return fac;
}).factory('DataService', function () {
    var fac={}
    debugger;
    fac.DeleteData = function ($http)
    {
        return $http.get('/State/DeleteData');
    }
    return fac;
});
    public string UpdateData(StateMaster r)
            {
                if (r != null)
                {
                    using (simpleEntities dbContext = new simpleEntities())
                    {
                        StateMaster lstdata = dbContext.StateMasters.Where(x => x.StateID == r.StateID).FirstOrDefault();
                        lstdata.StateName = r.StateName;
                        lstdata.CountryName = r.CountryName;
                        dbContext.SaveChanges();
                        return "Data Updated";
                    }
                }
                else
                {
                    return "something went worng";
                }
            }
[HttpPost]
        public string DeleteData(int id)
        {
            if (id != 0)
            {
                using (simpleEntities databContext = new simpleEntities())
                {
                    var lsdata = databContext.StateMasters.Where(x => x.StateID == id).FirstOrDefault();
                    databContext.StateMasters.Remove(lsdata);
                    databContext.SaveChanges();
                    return "Data Deleted Successfully";
                }
            }
            else {
                return "Error Occured";
            }
        }
StateController.cs

    //update data of table
        $scope.UpdataData = [];
        //UpdateData();
        $scope.UpdateData = function (StateMaster) {
            var RetValData = DataService.UpdateStudent(StateMaster);
            debugger;
            getData.then(function (StateMaster) {
                debugger;
                StateID: $scope.StateID;
                StateName: $scope.StateName;
                CountryName: $scope.CountryName;
            }, function () {
                alert('Error in getting records');
            });
    }
 $scope.DeleteData = [];
    $scope.DeleteData = function (r, index) {
        var retval = DataService.DeleteData(r.StateID).success(function (msg) {
            $scope.countrydata.splice(index, 1);
             alert('Student has been deleted successfully.');  
        }).error(function () {
            alert('Oops! something went wrong.');
        });
    }.factory('DataService', function ($http) {
    var fac={}
    debugger;
    fac.UpdateData= function($http)
    {
        return $http.get('/State/UpdateData');
    }
    return fac;
}).factory('DataService', function () {
    var fac={}
    debugger;
    fac.DeleteData = function ($http)
    {
        return $http.get('/State/DeleteData');
    }
    return fac;
});
    public string UpdateData(StateMaster r)
            {
                if (r != null)
                {
                    using (simpleEntities dbContext = new simpleEntities())
                    {
                        StateMaster lstdata = dbContext.StateMasters.Where(x => x.StateID == r.StateID).FirstOrDefault();
                        lstdata.StateName = r.StateName;
                        lstdata.CountryName = r.CountryName;
                        dbContext.SaveChanges();
                        return "Data Updated";
                    }
                }
                else
                {
                    return "something went worng";
                }
            }
[HttpPost]
        public string DeleteData(int id)
        {
            if (id != 0)
            {
                using (simpleEntities databContext = new simpleEntities())
                {
                    var lsdata = databContext.StateMasters.Where(x => x.StateID == id).FirstOrDefault();
                    databContext.StateMasters.Remove(lsdata);
                    databContext.SaveChanges();
                    return "Data Deleted Successfully";
                }
            }
            else {
                return "Error Occured";
            }
        }
InsertState.cshtml

<div ng-app="MyApp" ng-controller="StateController">
     <table class="table table-bordered">
            <tr>
                <td>Sr. No.</td>
                <td>Country Name</td>
                <td>State Name</td>
                <td></td>
                @*<td>Country Name</td>*@
            </tr>
            <tr ng-repeat="r in countrydata">
                <td>{{$index + 1}}</td>
                <td>{{r.CountryName}}</td>
                <td>{{r.StateName}}</td>
                @*<td>{{r.CountryName}}</td>*@
                <td>
                    <span ng-click="UpdataData(r)" class="btnAdd">Edit</span> |
                    <span ng-click="DeleteData(r)" class="btnRed">Delete</span>
                </td>  
            </tr>



        </table>
</div>

高级专员。
国名
州名
@*国名*@
{{$index+1}}
{{r.CountryName}
{{r.StateName}
@*{{r.CountryName}*@
编辑|
删除

您的代码中存在此问题

line$scope.UpdateData=函数(StateMaster

当你试图运行你的$scop功能,但功能是工厂的,所以你必须像这样尝试

factory.UpdateDate

在角度定义
工厂时似乎有问题,您可以尝试下面的方法

    var app = angular.module('myApp', []);

    app.factory('testFactory', function(){
        return {
            sayHello: function(text){
                return "Factory says \"Hello " + text + "\"";
            },
            sayGoodbye: function(text){
                return "Factory says \"Goodbye " + text + "\"";
            }  
        }               
    });

   function HelloCtrl($scope, testService, testFactory)
   {
      $scope.fromFactory = testFactory.sayHello("World");
   }

你可以放置你的函数,然后试试它是否返回你的值

什么是数据服务的代码???参见controller.js@PranayRana,我刚刚附上了我的服务代码这是compiletime错误或runtime??runtime@PranayRanacan你可以试试我建议的方法…首先尝试简单,然后选择大代码…即首先尝试调用factory方法,如果它能工作的话,那么在调用服务器端函数时,将http代码放入其中是没有问题的,因为我已经在同一个文档中创建了3-4个工厂,而且一切都很好@PranayRana@DheerajSharma-我发现问题,请参阅我的更新答案…您必须调用工厂功能,即工厂。udpatedata为$scope未更新函数数据您遇到错误我按照您所说的进行了更改,但不幸的是,它显示了错误“ReferenceError:factory未定义”现在我的表视图中没有显示任何数据@PranayRana@DheerajSharma-你一次尝试的事情太多了…我建议你一步一步来,首先按照我的建议定义工厂,然后尝试在你的控制器中使用工厂,然后进行大的改变