У меня есть два массива динамических объектов. Один для цветов, один для автобусов. Цель состоит в том, чтобы назначить цвет автобусу. Таким образом, используя ng-repeat, код создает выбор для каждого цвета, а затем использует ng-change для вызова функции updatebus, передавая идентификатор цвета. Но это не работает. Идентификатор цвета всегда не определен.
Как я могу назначить цвет на шину с двумя массивами? Что я делаю неправильно?
Я попытался посмотреть на этот ответ: получение ng-объекта, выбранного с помощью ng- изменить
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Example - combining two arrays</title>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.27/angular.min.js"></script>
</head>
<body ng-app="selectExample">
<script>
angular.module('selectExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.colors = [
{name:'black', id:'a'},
{name:'white', id:'b'},
{name:'red', id:'c'},
{name:'blue', id:'d'},
{name:'yellow', id:'e'}
];
$scope.buses = [
{name:'bus 1', colorid:''},
{name:'bus 2', colorid:''}
];
$scope.theBus = $scope.buses[1]; // red
$scope.updatebus = function(bus, id){
//alert(id); // undefined
$scope.theBus = bus;
bus.cid = id;
};
}]);
</script>
<div ng-controller="ExampleController">
<p>
Bus Color:
<div ng-repeat="bus in buses">
{{bus.name}}
<select ng-model="myColor"
ng-options="color.name for color in colors"
ng-change="updatebus(bus, color.id)">
<option value="">-- choose color --</option>
</select>
<p>
</div>
<div>
the bus "{{theBus.name}}" has color id "{{theBus.colorid}}"
</div>
</div>
</body>
</html>
bus.cid = id
, но у вас естьcolorid
в качестве имени свойства в массивеbuses
- person Patrick Evans   schedule 29.01.2015