Dropdownlist не устанавливает значения с помощью углового JS - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть требование, где я хочу связать dropdownlist, используя MVC и angular JS.

Я пробовал, как показано ниже

var app1 = angular.module('Assign', [])
app1.controller('SAPExecutive_R4GState', function ($scope, $http, $window) {
   // alert(UMSLocationDetails);
    var LocObj = JSON.parse(UMSLocationDetails)
    var ZoneValue = "";
    $.each(LocObj, function (index, element) {
        ZoneValue += element.LocationID + ",";
    });

    ZoneValue = ZoneValue.substr(0, ZoneValue.length - 1);
    var Values = { "MaintZones": ZoneValue };

    alert(JSON.stringify(Values));

    $scope.DefaultLabel = "Loading.....";
    $http({
        method: "POST",
        url: "/App/GetR4GStates",
        dataType: 'json',
        data: JSON.stringify(Values),
        headers: { "Content-Type": "application/json" }

    }).success(function (result) {
        $scope.DefaultLabel = "--Select--";
        $scope.State = data;
    });

    post.error(function (data, status) {
        $window.alert(data.Message);
    });
});
<select id="SAPExecutive_R4GState" class="form-control" ng-model="R4GState.Selected" ng-controller="SAPExecutive_R4GState as R4GState" ng-init="Select" ng-options="b for b in list">
                                    </select>

И мой код CS

[HttpPost]
    public JsonResult GetR4GStates(string MaintZones)
    {
        List<SelectListItem> lstR4GState = new List<SelectListItem>();
        try
        {         
            Filters ObjFilter = new Filters();
            DataTable dt = ObjFilter.GetR4GState(MaintZones);
            if (dt.Rows.Count > 0)
            {
                lstR4GState = (from DataRow dr in dt.Rows
                               select new SelectListItem()
                               {
                                   Text = Convert.ToString(dr["R4GSTATENAME"]),
                                   Value = Convert.ToString(dr["R4GSTATECODE"])

                               }).ToList();
            }
            else
            {

                SelectListItem slEmptyData = new SelectListItem();
                slEmptyData.Text = "No Data found";
                slEmptyData.Value = "No Data found";
                lstR4GState.Add(slEmptyData);
            }
        }
        catch (Exception e)
        {
        }
        // ErrorLog.HandleErrorLog("", "", "GetR4GStates", "Error2");
        return Json(lstR4GState);
    }

Я получаю значения в return Json(lstR4GState);, но значения не устанавливаются в раскрывающемся списке.

Пожалуйста, предложите, где я иду не так, как я новичок в угловой

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вы можете сделать так, чтобы это работало для вас ..

Пожалуйста, следуйте jsfiddle

в этом jsfiddle

0 голосов
/ 04 февраля 2019

Рекомендуется пользователю THEN и CATCH в AngularJS> 1,5. Это должно работать:

angular.module('Assign', [])
  .controller('SAPExecutive_R4GState', function($scope, $http, $window)  {
    const payload = {};
    $http.get('https://dog.ceo/api/breeds/list/all', payload)
      .then(function(response) {
      // Please be aware RESPONSE contains the whole response.
      // You probably want RESPONSE.DATA
        console.log(response.data);
      })
      .catch(function(err) {
        // do something with err message });
      });
  });
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="Assign" ng-controller="SAPExecutive_R4GState"></div>

Обратите внимание, что в этом примере используется запрос GET, просто чтобы я мог показать, что он работает, в запросе GET значение payload будетдобавлено как querystring Если вы измените его на $http.post, полезная нагрузка будет добавлена ​​в тело запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...