angular ng-selected, выберите текущий родительский $ index

0

http://plnkr.co/edit/fwwAd4bn6z2vxVN2FUL7?p=preview

в плункере вы можете видеть, что я хочу, я хочу, чтобы в 3 раскрывающихся списках были значения A, B, C, и если я добавлю четвертый, он должен иметь A, B, C, D, и когда вы откроете раскрывающийся список, вы можете выберите все добавленные буквы.

<option ng-repeat="n in characters" ng-selected="$index == $parent.$index">{{n}}</option>

Таким образом, вы должны выбрать ABC, когда вы нажимаете ADD.. и он должен быть выбран STAY.. но это не так, как сделать его выбранным?

Теги:

3 ответа

1
Лучший ответ

Вы должны использовать директиву ng-options для своего выбора.

HTML:

<div ng-app="app">
    <div ng-controller="mainController">
        <div ng-repeat="selected in selecteds track by $index">
            <select ng-model="selecteds[$index]" ng-options="character for character in characters">
            </select>
        </div>
        <button ng-click="addValue()">Add</button>
        <pre ng-bind="characters | json"></pre>
        <pre ng-bind="selecteds | json"></pre>
    </div>
</div>

JS:

angular.module('app', [])
.controller('mainController', function($scope) {
    $scope.characters = ["A", "B", "C"];
    $scope.selecteds = ["A", "B", "C"];
    $scope.addValue = function() { 
        var currGroup = String.fromCharCode(65 + $scope.characters.length);
        $scope.characters.push(currGroup);
    }
});

Рабочая скрипка здесь: http://jsfiddle.net/ben1729/djy5ooed/

  • 0
    Я люблю тебя большое спасибо
0

Я изменил вашу настройку, чтобы динамически создавать существующие параметры в вашей коллекции символов, а затем динамически добавлять выпадающие списки:

Plnkr Здесь

Изображение 174551

Это делается через:

 $scope.characters = [];
 $scope.something = [{Name:"Obj1",Selected:"A"}, {Name:"Obj2",Selected:"B"},{Name:"Obj3",Selected:"C"}];

 angular.forEach($scope.something, function(obj, index) {
   $scope.characters.push(obj.Selected);
 });

 $scope.Add = function() {
   var sNewOption = String.fromCharCode(65 + $scope.characters.length);
   $scope.something.push({Name: "obj" + (parseInt($scope.characters.length) + 1), Selected: sNewOption});
   $scope.characters.push(sNewOption);  
 }
  • 0
    Это то, что мне нужно, спасибо! Позвольте мне проверить это, и я дам вам ответ
  • 0
    Есть ли способ сделать это без добавления новых выпадающих? только значения?
Показать ещё 2 комментария
0

Вам нужно добавить значение к параметрам. Попробуйте этот путь

<option ng-repeat="n in characters" value="{{n}}" ng-selected="$index == $parent.$index">{{n}}</option>
  • 0
    Не работает.. :/
  • 0
    проверьте это здесь plnkr.co/edit/lUBtUJQzehN4TVma1Fkq?p=info
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню