2016-02-21 2 views
0

Я не знаю, что произойдет, но эта функция кажется неработоспособной вообще.ng-change не работает в Выбрать

Вот мое мнение:

<tr> 
    <th>Category</th> 
    <td> 
     <select class="form-control" ng-model="masterlist.category_id" ng-options="c.category_id as c.category_name for c in category" required data-ng-change="getSubCategory(c.category_id)"></select> 
    </td> 
</tr> 
<tr> 
    <th>Sub Category</th> 
    <td> 
               <select class="form-control" ng-model="masterlist.sub_category_id" ng-options="c.sub_category_id as c.sub_category_name for c in subCategory" required></select> 
    </td> 
</tr> 

Угловая JS

$scope.getSubCategory = function (category_id) { 
     $http.get('/MasterList/SubCategory' + category_id).then(function ($response) { 
      $scope.subCategory = $response.data; 
     }); 
    } 

Контроллер:

public ActionResult SubCategory(int id) 
     { 
      db.Configuration.ProxyCreationEnabled = false; 
      return Json(db.Sub_Category.Where(x => x.active_flag == true && x.category_id == id).ToList(), JsonRequestBehavior.AllowGet); 
     } 

проверить на консоли, но ошибки ничего не было, а вот инспектировать элемент вид:

enter image description here

Моя основная цель - выбрать категорию, отображать для подкатегории будут только те, которые относятся к категории.

Заранее благодарим за помощь.

+0

Это вызов ajax? – Shyju

+0

Что это значит? – Jen143Me

+0

Url будет недействительным, как вы конкатенируете строку. Вам не хватает '/'? Очень легко проверить запросы ajax в сети браузера dev tools. Должен также добавить некоторую обработку ошибок – charlietfl

ответ

1

В вашей ng-модели вашего элемента выбрано значение masterlist.category_id. Поэтому вы должны передать это методу getSubCategory.

<select class="form-control" ng-model="masterlist.category_id" 
     ng-options="c.category_id as c.category_name for c in vm.category" 
     required data-ng-change="vm.getSubCategory(masterlist.category_id)"></select> 

Кроме того, необходимо отправить запрос с шаблоном URL-адрес SubCategory/3 где 3 является значение категории идентификатор. С вашим текущим кодом он отправит запрос в SubCategory3, и вы увидите ошибку 404, если вы занесете вкладку в сеть браузера.

Вы должны добавить / между переменной catetory_id и имя метода действия,

$http.get('Home/SubCategory/' + category_id) 

Я также рекомендую двигая HTTP вызовы к службе данных, которые могут быть injeccted к контроллеру. Als, вы не должны жестко кодировать url, как это в вашем js-файле. Попробуйте использовать вспомогательный метод Url.Action для генерации правильных относительных URL-адресов для вашего метода action/api endpoints, как описано в this post и этой записи.

+0

Я уже делал это, но все равно никакого результата. Я поставил предупреждение для функции getSubCategory, но без предупреждения, когда я запустил его. – Jen143Me

+0

У вас может быть другая ошибка скрипта на вашей странице. Проверьте консоль просмотра. Я просто проверил этот код локально, и он работал нормально. – Shyju

+1

Теперь он работает. благодаря – Jen143Me

 Смежные вопросы

  • Нет связанных вопросов^_^