Директива AngularJS ограничивает

0

Я сделал некоторые директивы AngularJS на прошлой неделе, и все они работают, но этот просто не работает, и я не знаю, что я делаю неправильно.

Это директива, о которой я говорю:

app.directive('idleCheck', [function () {
  return {
      restrict: 'I',
      link: function (scope, elem, attrs) {
          ifvisible.setIdleDuration(5);
          ifvisible.on("idle", function () {
              var div = document.getElementById('fullscreenWrap');
              div.style.cursor = 'none';
              stream.pause();
          });

          ifvisible.on("wakeup", function () {
              var div = document.getElementById('fullscreenWrap');
              div.style.cursor = 'auto';
              stream.resume();
          });
      }
  }
}]);

Это мой HTML-код, где я называю директиву:

<div id="fullscreenWrap" idle-check>
  ...
</div>

Вы видите что-то не так в коде? Или вы знаете, почему он не работает?

  • 1
    изменить ограничение на «А»
  • 1
    Что именно дает ошибка? Все директивы объявлены одинаковыми? Здесь нет restrict: I . Существует только A - соответствует только имени атрибута, E - только соответствует имени элемента, C - соответствует только имени класса. Однако вы можете дать комбинацию из трех.
Показать ещё 1 комментарий
Теги:
directive

3 ответа

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

Вам нужно изменить поле ограничения на "A".

Параметр ограничения обычно устанавливается так:

'A' - соответствует только атрибуту name 'E' - соответствует только имени элемента 'C' - соответствует только имени класса. Все эти ограничения могут быть объединены по мере необходимости:

"AEC" - соответствует атрибуту или имени элемента или класса

Угловая директива

1

Доступны следующие restrict: 'E', 'A', 'C', 'M'

Один из EACM ограничивает директиву определенным стилем декларации директивы.

Вы даже можете использовать несколько ограничений для одного restrict: 'AC'

If you don't restrict any, the defaults (elements and attributes) are used.

E - Имя элемента (по умолчанию): <my-directive></my-directive>

A - Атрибут (по умолчанию): <div my-directive="exp"></div>

C - Класс: <div class="my-directive: exp;"></div>

M - coMment: <!-- directive: my-directive exp -->

Например:

ng-if ограничено 'A'. поэтому его можно использовать только как атрибут, вы не можете использовать его в качестве комментария или элемента

Здесь угловой код для ngIf

var ngIfDirective = ['$animate', function($animate) {
  return {
    transclude: 'element',
    priority: 600,
    terminal: true,
    restrict: 'A',       // --> This means restricting to Attribute
1

Не зная, какая ошибка на самом деле дает вашу проблему, скорее всего, ваша декларация директивы.

Нет restrict: I Угловое поддерживает только три значения:

A - соответствует только имени атрибута E - соответствует только имени элемента C - соответствует только имени класса

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

Документы: https://docs.angularjs.org/guide/directive#template-expanding-directive В нем указывается информация в нижней части раздела template expanding directive.

Ещё вопросы

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