Как передать значения элементов ввода html-формы, созданной динамически с помощью ng-repeat, в ng-контроллер

Я разработал форму, как показано ниже.

<form id="123">
    <div ng-repeat="x in data" class="[ form-group form-inline ]">
    <input class="form-control input-md" type="checkbox" id="{{x.name}}" autocomplete="off" />
         <div class="[ btn-group ]">
               <label for="{{x.name}}" class="[ btn btn-success ]">
                  <span class="[ glyphicon glyphicon-ok ]"></span>
                  <span> </span>
               </label>
               <label for="{{x.name}}" class="[ btn btn-default active ]">
                  {{x.name}}
               </label>
        </div>
    <input class="form-control input-md" type="text" id="x.period" autocomplete="off" />
    <input class="form-control input-md" type="text" id="x.value" autocomplete="off" />
    </div>
    <button type="button" class="btn btn-info" style="float: right" ng-click="ctrl.addInfo()">Add</button>
</form>

Где ctrl — ссылка на контроллер на html-странице, определенная на той же html-странице. Сейчас я не могу понять, как передать каждое входное значение методу addInfo, так как отсутствие входных тегов будет динамическим в зависимости от длины «данных». Когда я пытаюсь использовать ng-model={{x.name}} в поле ввода, я получаю сообщение «Ошибка: [$parse:syntax] Синтаксическая ошибка: токен '{' недопустимый ключ в столбце 2 выражения [{ {x.name}}], начиная с [{x.name}}]."


person Satya Narayana    schedule 27.02.2017    source источник
comment
вы можете добавить plunkr или показать свой код js.   -  person Manikandan Velayutham    schedule 27.02.2017
comment
Удалите {{}} при использовании ng-model. Эта ng-model={{x.name}} должна быть ng-model=x.name   -  person Marcus Höglund    schedule 27.02.2017
comment
Когда я использую ng-model=x.name, выражение между ‹label›{{x.name}}‹/label› оценивается, и метка меняется на true или false в зависимости от клика пользователя. Следовательно, я написал ng-model=name, и в функции контроллера, когда я пытаюсь сослаться на него как на $scope.name, я получаю ошибку неопределенного имени. Еще одно сомнение, которое у меня есть, заключается в том, что, поскольку все элементы ввода являются ng-repeat, как я могу ссылаться на каждый из них отдельно в функции контроллера, чтобы я мог отправить форму. this.addSensorInfo=function(){console.log('имя' + $scope.name);}   -  person Satya Narayana    schedule 27.02.2017


Ответы (1)


person    schedule
comment
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и/или как этот код отвечает на вопрос, повышает его ценность в долгосрочной перспективе. - person Thomas Flinkow; 14.03.2018