Я пытаюсь заполнить поле выбора и поле ввода.
Значение,
- Всякий раз, когда кто-то пытается выбрать страну, я устанавливаю соответствующую валюту в поле ввода и отображаю страну + валюту в выводе.
- Всякий раз, когда кто-то пытается ввести валюту, я устанавливаю страну в поле параметров и показываю страну + валюту в выводе.
Мой контроллер:
app.controller('MainCtrl', function ($scope) {
$scope.$watch('countrySelect', function () {
for ($i = 0; $i < arr.length; $i++) {
var temp = arr[$i]['select'];
if (temp === $scope.countrySelect) {
$scope.outputCountry = arr[$i].country + arr[$i].currency;
$scope.countryCurrency = arr[$i].currency;
}
}
});
$scope.$watch('countryCurrency', function () {
for ($i = 0; $i < arr.length; $i++) {
var temp = arr[$i]['currency'];
if (temp === $scope.countryCurrency) {
$scope.outputCountry = arr[$i].country + $scope.countryCurrency;
$scope.countrySelect = arr[$i].country;
}
}
});
});
Соответствующий div:
<div ng-controller="MainCtrl">
<form action="#">
<select ng-model="countrySelect" ng-init="countrySelect = 11">
<option value="11">US</option>
<option value="12">UK</option>
</select>
<input ng-model="countryCurrency" />
<input ng-model="outputCountry" />
</form>
</div>
Я придумал этот Плункер .
- Есть ли лучший способ добиться того же самого без использования
$scope.watch
и многократного обстрела?
- Во время загрузки (перед выбором любой страны по умолчанию)
$scope.watch
не срабатывает и значения не заполняются вообще.
Здесь есть указатели?