Директивная сфера вопроса внутри ng-repeat - PullRequest
0 голосов
/ 21 февраля 2019

Даже после недели глубоких испытаний я не смог решить следующую проблему.

1) HTML-контейнер Получил HTML-контейнер с ng-repeat, используя внутри директиву E, вот упрощенныйпример.

<div ng-repeat="block in blocks">
   <my-directive
    selected="selected[block.name]"
    block-name="block.name"
   >
   </my-directive>
</div>

2) Код директивы

module.directive('myDirective', myDirective);

function myDirective() {
    return {
        restrict: 'E',
        templateUrl : 'myDirectiveTemplate.tpl.html',
        scope: {
            selected: '='
            blockName: '='
        },
        link: function ($scope) {
        }
    }
};

3) HTML-код используемой директивы

<div>
 <div>
  <input type="text" ng-model="selected.denomination" myFunc="onCompletedListClick($parent.selected, $parent.blockName)"
   class="form-control"/>
 </div>
</div>
<button
ng-click="onCompletedListClick($parent.selected, $parent.blockName)">
                    ReSearch</button>

Проблема в директиве,при использовании кнопки область всегда с правильными данными, в этом случае при нажатии клавиши Enter вызывается myFunc.

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

Мои вопросы: 1)Как это исправить, я схожу с ума от этого 2) Почему это происходит?

1 Ответ

0 голосов
/ 22 февраля 2019

Обнаружена проблема.

Реальная проблема заключалась в отсутствии Типа кнопки, поля, напечатанные внутри формы, имели поведение по умолчанию при отправке при нажатии клавиши Enter.По умолчанию кнопка без типа - «отправить», поэтому она пыталась отправить форму, и первая кнопка без типа была запущена, я исправил кнопку и добавил функцию ng-keydown в мою директиву, чтобы правильно обрабатывать отправку ключа ввода..

...