[英]AngularJS — Passing object/object property to be $watched into $scope.$watch
[英]AngularJS $scope.$watch a property ngModel of a select input
我有一个由 python 后端生成的表单的 AngularJS 应用程序。 我的问题是在选择输入的 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>
这是我的 Angular 代码:
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:页面加载完成后,contract 对象会有很多其他字段。
如果您希望在该值更改时触发功能,我建议您使用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>
有什么办法可以使用手表吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.