Как создать директивы оболочки для контроллера в AngularJS - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь обновить контроллеры / компоненты, написанные на AngularJS1, до Angular6. Я использую подход обертки для всех существующих контроллеров / компонентов AngularJS1, расширяя «UpgradeComponent», помещенный в папку «directive-wrappers» в моем примере.

У нас есть много контроллеров, написанных на AngularJS1, которыенеобходимо обновить и использовать внутри приложения Angular6. Поскольку эти контроллеры немного сложны, мы не хотим переписывать их или касаться этих контроллеров, вместо этого мы хотим создать некоторые директивы, которые были бы похожи на обертки для этих контроллеров и в конечном итоге обновлены и использованы. Я немного застрял здесь, как написать директивы для существующих контроллеров?

Я создал POC , в котором я хотел обновить homepageController и UserServiceController . Эти 2 контроллера должны быть упакованы в директиву и затем обновлены до Angular6.

Типичные существующие контроллеры выглядят так, поскольку они немного сложны и содержат много функций, которые мы не хотим касаться этих существующих контроллеров.

поэтому создайте директивы-оболочки для этих ...

angular.module('app.products').controller('ProductDetailsController', [

    '$scope', 'restService', 'currentCartService', 'productDetailsDialogService', 'constants', 'dialog', '$state', 'checkValues', 'rightsService', 'addSkuToItemsDialogService',
    'dsaContextService', 'dfsService','messenger','cartExtService','dfsDpaExtService', 'dfsSmbExtService',
    function($scope, restService, currentCartService, productDetailsDialogService, constants, dialog, $state, checkValues, rightsService, addSkuToItemsDialogService,
        dsaContextService, dfsService, messenger, cartExtService, dfsDpaExtService, dfsSmbExtService) {

        'use strict';

        $scope.iAm = 'ProductDetailsController';

         $scope.addItemToCart = function() {
         ...
          };

        $scope.isCartActive = function() {
            ...
        };
        ...           
        ...
 }]);
...