2017-01-26 1 views
0

У меня есть 2 DropDowns в MVC и пытается использовать AngularJS. Мой первый DropDown заполняется данными, которые поступают из БД должным образом. Когда пользователь делает выбор в первом DropDown, второй DropDown должен быть заполнен в соответствии с выбором. Но он не срабатывает. Что я делаю не так?Первый выбор DropDown не запускает вторую функцию DropDown

Когда я выбираю из первого DropDown, Chrome Console показывает эту ошибку "undefined". Но, определяется, почему он показывает эту ошибку?

вот мой HTML-код ...

<form name="mainForm" ng-controller="PriceListEditController" novalidate> 
    <div class="error">{{message}}</div> 
    <select id="brandSelect" ng-model="brandSelect" ng-options="b.Id as b.Name for b in brands" ng-change="GetBrandPriceList()"> 
     <option value="">Marka Seçiniz</option> 
     <option ng-repeat="b.Id for b in brands" value="{{b.Id}}">{{b.Name}}</option> 
    </select> 
    <select ng-model="priceList" ng-options="b.Id as b.Name for b in priceLists"> 
     <option value="">-- Select Country --</option> 
     <option ng-repeat="p.Id for p in priceLists" value="{{p.Id}}">{{p.Name}}</option> 
    </select> 
</form> 

вот мой JS код ...

var app = angular.module('PriceListEditModule', []); 
app.controller('PriceListEditController', ["$scope", "$q", "$http", function ($scope, $q, $http) { 

    $http({ 
     method: 'GET', 
     url: '/GetBrands' 
    }).then(function successCallback(response) { 
     $scope.brands = response.data; 
    }, function errorCallback(response) { 
     $scope.message = 'Unexpected Error ' + response.message; 
    }); 

    $scope.GetBrandPriceList = function() { 

     console.log($scope.brandSelect); 

     var brandId = $scope.brandSelect; 

     if (brandId>0) { 
      $http({ 
       method: 'GET', 
       url: '/GetBrandPriceList' 
      }).then(function successCallback(response) { 
       $scope.priceLists = response.data; 
      }, function errorCallback(response) { 
       $scope.message = 'Unexpected Error ' + response.message; 
      }); 
     } 
     else { 
      $scope.priceList = null; 
     } 
    } 

}]);  

ответ

2

используется нг-варианты и нг-повтора в том же выберите раздел. Попробуйте это у вас html:

<form name="mainForm" ng-controller="PriceListEditController" novalidate> 
     <div class="error">{{message}}</div> 
     <select id="brandSelect" ng-model="brandSelect" ng-change="GetBrandPriceList()"> 
      <option value="">Marka Seçiniz</option> 
      <option ng-repeat="b in brands" value="{{b.Id}}">{{b.Name}}</option> 
     </select> 
     test 
     <select ng-model="priceList"> 
      <option value="">-- Select Country --</option> 
      <option ng-repeat="p in priceLists" value="{{p.Id}}">{{p.Name}}</option> 
     </select> 
    </form> 
Смежные вопросы