Вот мой код Plnkr: plnkr.co/edit/F51TYecauH3L94jm?preview
HTML Код Plnkr:
<body ng-app="myApp">
<div ng-controller="MyController">
<div ng-dropdown-multiselect="" options="dropdownOptions" selected-model="dropdownSelected" events="exampleEvents"></div>
</div>
</body>
JavaScript Код Plnkr:
var myApp = angular.module('myApp',['angularjs-dropdown-multiselect']);
myApp.controller("MyController", ['$scope',function($scope){
$scope.initial = "Layer 1,Layer 2,Layer 3,Layer 4";
$scope.initialArray = $scope.initial.split(',');
$scope.dropdownSelected = [];
for(n = 0; n < $scope.initialArray.length; n++)
{
$scope.dropdownSelected[n] = {
id: n,
label: $scope.initialArray[n]
}
console.log("dropdownSelected #", n, $scope.dropdownSelected[n]);
}
$scope.dropdownOptions = [];
for(m = 0; m < $scope.initialArray.length; m++)
{
$scope.dropdownOptions.push($scope.dropdownSelected[m]);
}
for(i = 0; i < $scope.dropdownSelected.length; i++)
{
console.log("dropdownOptions #", i, $scope.dropdownOptions[i]);
}
console.log($scope.initial);
$scope.exampleEvents = {
onSelectionChanged: function() {
$scope.initial = [];
console.log($scope.initial);
$scope.dropdownSelected.forEach(function (selectedData) {
$scope.initial.push(
{
"id": selectedData.id,
"label": selectedData.label
}
);
});
console.log($scope.initial);
}
}
}]);
Я успешно добавил в объекты (с его свойствами, состоящими из числа и строки) в массив. Индексы массива - это опции раскрывающегося меню (взяты из плагина AngularJS MultiSelect Dropdown).
Я хочу создать событие, которое сбрасывает значения исходного массива ($ scope.exampleEvents и onSelectionChanged). и заменяет их объектами, основанными на опциях меню SELECTED (selectedData в forEach l oop).
Чтобы проверить, работает ли мой код, я использовал console.log. Первоначально объекты массива правильные: исходные объекты, хранящиеся в массиве
Когда я начинаю выбирать параметры (т. Е. Объекты из массива) из выпадающее меню, изначально объекты отображаются правильно: идеальный вывод
Когда я выбираю больше опций меню, свойство строки (никогда не целое) заканчивается вверх становится неопределенным: неправильный вывод