如何在AngularJS中为Controller创建包装器指令

时间:2019-10-19 22:19:35

标签: angularjs angular ng-upgrade angular-upgrade

我正在尝试将用AngularJS1编写的控制器/组件升级到Angular6。在我的示例中,通过扩展放置在“ directive-wrappers”文件夹下的“ UpgradeComponent”,我采用了为所有现有AngularJS1控制器/组件提供包装的方法。

我们有许多用AngularJS1编写的控制器,需要在Angular6应用程序中进行升级和使用。由于这些控制器有点复杂,我们不想重写它或触摸这些控制器,而是想创建一些指令,就像这些控制器的包装器一样,最终被升级和使用。我对如何为现有控制器编写指令感到有些困惑?

我创建了POC,我想在其中升级 homepageController UserServiceController 。将这两个控制器包装在一条指令中,然后升级到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() {
            ...
        };
        ...           
        ...
 }]);

0 个答案:

没有答案