Как привязать 2 модели к одному входному полю в Angular?
есть ли в любом случае, что я могу привязать два значения модели к одному полю ввода?
Предположим, у меня есть поле ввода, которое я хочу быть значением двух переменных в области видимости что-то вроде:
<input type="text" model="sn_number; id" >
4 ответа:
нельзя, но есть некоторые обходные пути.
1. Используйте ngChange для обновления другой модели
<input type="text" ng-model="sn_number" ng-change="id=sn_number"/>
2. Вы можете посмотреть модель, а когда в изменениях, обновить другой
$scope.$watch('sn_number', function(v){ $scope.id = v; });
Вам также нужно будет следить за изменениями в
id
Если вы хотите, чтобы держать их в синхронизации.
вы можете привязать поля сразу, а не только в ng-change, и на самом деле это не привязка данных, его единственное угловое выражение
<label>Name</label> <input type="text" ng-model="name" value="{{name}}"/> <label>Key</label> <input type="text" ng-model="key" value="{{key=name}}" />
было бы бессмысленно привязывать входные данные к двум переменным в модели. Привязка работает в обоих направлениях, поэтому при обновлении модели поле обновляется и наоборот. Если бы Вы были привязаны к двум переменным, что было бы единственным источником истины?
однако вы можете использовать ng-change для вызова метода на контроллере, который может установить две переменные при изменении поля.