AngularJS $ http.get в областях MVC5

0

У меня есть область с именем Employer в MVC5, а в корне папка с именем app, содержащая папку с именем list. В папке списка я создал js файлы и в качестве фабрики услуг я пользовался этим кодом:

    angSalaryApp.factory('listService', ["$http",
  function ($http) {
      return {
          newList: newList
      };

      function newList() {
          return $http.get("Areas/Employer/List/newlist");
      }

      return {
          userLists: userLists
      };

      function userLists() {
          return $http.get("Areas/Employer/List/getlists");
      }
  }
]);

но действия newlist и userlists не вызываются, а переменные контроллера не определены. это мой код контроллера:

angSalaryApp.controller('listController',
    function ListController($scope, listService) {
        $scope.list = listService.newList;

        $scope.userlist = [];

        $scope.count = 0;

        $scope.submitForm = function () {

        };

        $scope.loadLists = function () {
            $scope.userlist = listService.userLists;
            $scope.d = "ffdgdfg";
        };

        $scope.updateName = function (newtitle) {
            $scope.list.Name = newtitle;
        };
    });
Теги:
asp.net-mvc
asp.net-mvc-areas

2 ответа

0

Вы пытались перенести инициализацию маршрута на регистрацию района?

using System.Web.Mvc;

namespace MyAreaTest
{
    public class MyAreaRegistration : AreaRegistration 
    {
        public override string AreaName 
        {
            get { return "MyArea"; }
        }

        public override void RegisterArea(AreaRegistrationContext context) 
        {
            context.MapRoute(
                "Area_default",
                "MyArea/{controller}/{action}/{id}",
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}
  • 0
    Я создал новый проект без области и настроек по умолчанию, и ничего не изменилось.
0

Вам необходимо перестроить свою фабрику следующим образом:

angSalaryApp.factory('listService', ["$http",
  function ($http) {
      return {
          newList: newList,
          userLists: userLists
      };

      function newList() {
          return $http.get("Areas/Employer/List/newlist");
      }

      function userLists() {
          return $http.get("Areas/Employer/List/getlists");
      }
   }
]);

... иначе userLists будут закрытыми.

  • 0
    Почему мое действие не называется?
  • 0
    Не совсем уверен, что вы подразумеваете под "действиями", но оба ваших сервисных метода возвращают обещания от $ http. Вы, вероятно, должны решить те, которые используют «затем».
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню