2014-01-21 3 views
1

Я пытаюсь передать объект, выбранный в a, для обновления данных другого объекта. Вот HTMLng-change метод не выполняется

<select id="categoryListBox" 
       ng-model="category.selected" 
       ng-change="updateCategory(category.selected)" 
       ng-options="category._id as category.name for category in categories"> 
     </select> 

Это делает

<select id="categoryListBox" 
    ng-model="category.selected" 
    ng-change="updateCategory()" 
    ng-options="category._id as category.name for category in categories" 
    class="ng-valid ng-dirty"> 
    <option value="0" selected="selected">Test4</option> 
    <option value="1">Test5</option> 
</select> 

Вот моя функция обновления

$scope.updateCategory = function(){ 
    console.log('hi'); 
} 

Моя проблема заключается в том, что именно сейчас, когда изменяется выбранный элемент метода updateCategory не пожары. Я бы хотел, чтобы всякий раз, когда опция, выбранная в <select></select>, изменяется, мой метод $ scope.updateCategory срабатывает. Было бы также здорово, если бы я смог передать категорию, выбранную для этого метода.

Update вот мой инициализационные, который населяет категории массива

$scope.init = function(){ 
      console.log('dfakjsdhf'); 
      console.log(apiUrl); 
      $scope.category = {}; 
      $scope.subcategory = {}; 
      //$scope.categories = {_id: 1, name:'test'}; 

      $http({ method: 'GET', url: apiUrl + '/categories'}). 
       success(function (data, status, headers, config) { 
        $scope.categories = data; 
        console.log($scope.categories); 

       }). 
       error(function (data, status, headers, config) { 
        console.log('error'); 
       }); 


     }; 

ответ

0

Там нет необходимости, чтобы пройти category.selected в вашей функции. В вашем контроллере js он будет присутствовать в вашей области, просто используйте его в вашей функции updateCategory().

JSFiddle

Html:

<select id="categoryListBox" 
      ng-model="category.selected" 
      ng-change="updateCategory()" 
      ng-options="category.id as category.name for category in categories"> 
    </select> 

JS:

$scope.updateCategory = function(){ 
    alert($scope.category.selected); 
} 
+0

console.log (привет); не отображается, когда параметры удаляются из обеих функций в html и контроллере. –

+0

Пожалуйста, разместите свой код контроллера. –

+0

Я добавил код контроллера –

0

Просто переименуйте нг-модель от category.selected к чему-то еще. По моему разумению, в вашем коде есть неоднозначность между нг-опций категории и нг-модели категории

<select id="categoryListBox" 
      ng-model="categorymodel" 
      ng-change="updateCategory(categorymodel)" 
      ng-options="category.id as category.name for category in categories"> 
    </select> 

DEMO

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