AngularJS$http.get调用MVC5操作

AngularJS $http.get to call a MVC5 action

本文关键字:MVC5 操作 调用 get http AngularJS      更新时间:2023-09-26

我是AngularJS的新手。我已经用AngularJS创建了一个应用程序。我有一个应用程序文件夹,里面有一个用于文件的列表文件夹:List.html和

listcontroller.js

angSalaryApp.controller('listController',
function ListController($scope, ListService) {
    $scope.list = listService.newlist;
    $scope.count = 0;
    $scope.submitForm() = function () {
    };
    $scope.updateName() = function () {
        $scope.count++;
    };
});

listService.js

angSalaryApp.factory('ListService',
    ["$http",
        function ($http) {
            var newList = function(){
                return $http.get("Areas/Employer/List/newlist");
            };
        }
    ]);

listdirective.js

    angSalaryApp.directive("listForm", function () {
    return {
        restrict: "E",
        templateUrl: "app/list/list.html"
    }
});

在应用程序文件夹中,我有一个JS文件,名为SalaryApp.JS

var angSalaryApp = angular.module('angSalaryApp',[])

当我的代码调用$http.get时,我得到了一条错误消息

Error: [$injector:undef] Provider 'ListService' must return a value from $get factory method.
http://errors.angularjs.org/1.4.6/$injector/undef?p0=ListService
   at enforcedReturnValue (http://localhost:5137/Scripts/angular.js:4330:9)
   at invoke (http://localhost:5137/Scripts/angular.js:4476:7)
   at Anonymous function (http://localhost:5137/Scripts/angular.js:4293:13)
   at getService (http://localhost:5137/Scripts/angular.js:4435:11)
   at invoke (http://localhost:5137/Scripts/angular.js:4464:9)
   at Anonymous function (http://localhost:5137/Scripts/angular.js:9127:11)
   at nodeLinkFn (http://localhost:5137/Scripts/angular.js:8239:13)
   at compositeLinkFn (http://localhost:5137/Scripts/angular.js:7671:13)
   at compositeLinkFn (http://localhost:5137/Scripts/angular.js:7675:13)
   at publicLinkFn (http://localhost:5137/Scripts/angular.js:7546:30)

在控制器中注入ListService,因此调用ListService.newlist而不是listService.newlist

angSalaryApp.controller('listController',
function ListController($scope, ListService) {
    $scope.list = ListService.newlist;
});

在工厂中,它应该返回object,但您没有返回任何object,所以通过在返回对象中添加函数来返回对象。

angSalaryApp.factory('ListService', ["$http",
  function($http) {
    return {
      newList: newList
    };
    function newList() {
      return $http.get("Areas/Employer/List/newlist");
    }
  }
]);