Как вернуть только одну директиву между двумя почти идентичными в AngularJS?

Как мне включить только одну директиву из двух одинаковых, если одна имеет устаревшие функции, а другая не является устаревшей?

  1. Устаревший не может быть удален (файл удален).
  2. Я помню, что был способ получить все директивы с одинаковыми именами и вернуть их массив, позволяющий мне выбирать, какие из них следует вернуть, но я больше не могу его найти.
var app = angular.module('myModule');

app.directive('myDirective1',
// returns all the needed things;
);

app.directive('myDirective1',
// returns all the needed things, plus some additional stuff;
);

Как вернуть / зарегистрировать только первый myDirective1 без второго?

1 ответ

Нашел способ

.config(['$provide', function ($provide) {
    // Returns the second registered uiGridOdataDirective from module,
    // so we dont call the same functionality twice.
    $provide.decorator('uiGridOdataDirective', ['$delegate', function ($delegate) {
        return [ $delegate[1] ];
    }]);
}]);
Другие вопросы по тегам