2015-02-16 5 views
3

У меня есть приложение AngularJS с формой, созданной бэкэндом python. Моя проблема заключается, чтобы вызвать определенную функцию (слушатель), когда ngModel из отборных изменений входных:

здесь тонированное HTML кода:

<select id="id_vehicle" name="vehicle" ng-model="contract.vehicle" class="ng-valid ng-valid-parse ng-dirty ng-touched"> 
    <option value="" selected="selected">---------</option> 
    <option value="1">Qashqai</option> 
    <option value="2">X6</option> 
</select> 

здесь мой Угловой код:

contract_form_app.controller("mainCtrl", ['$scope', '$http', '$location', '$window', 'djangoForm', function($scope, $http, $location, $window, djangoForm) { 

$scope.contract = { 
    vehicle: "" 
}; 

function loadVehicleInformation(oldValue, newValue) { 
    // This only triggered one time !!!!. 
    console.log("Selected vehicle " + $scope.contract.vehicle); 
}; 

$scope.$watch('contract.vehicle', loadVehicleInformation()); 

Когда Я выбираю другой вариант на моем входе выбора, моя функция слушателя не срабатывает ... почему?

ps: Когда страница была загружена, объект контракта будет содержать много других полей.

+2

'$ сфера $ часы ('contract.vehicle', loadVehicleInformation);' – karaxuna

ответ

9

Я рекомендую вам использовать ng-change вместо часов на контроллере, если вы хотите активировать функцию при изменении этого значения, вот что такое ng-change. .

<select id="id_vehicle" name="vehicle" ng-change="loadVehicleInformation()" ng-model="contract.vehicle" class="ng-valid ng-valid-parse ng-dirty ng-touched"> 
    <option value="" selected="selected">---------</option> 
    <option value="1">Qashqai</option> 
    <option value="2">X6</option> 
</select> 
+2

Ты мой герой! Я отвечу на ваш ответ за 11 минут: D –

+0

@FabrizioA Lol, рад помочь! –

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