angularjs指令到angular6组件/指令

时间:2019-12-04 10:01:14

标签: angularjs angular

我有一个angularjs指令作为旧应用程序的一部分,我想将其转换为angular6,因为我不知道angularJS并且当前使用angular6版本,有人可以帮我提供指针吗?下面是angularjs代码。

define(function (require, exports, module) {
    'use strict';

    var base = require('base');
    var utils = base.utils;

    configCompile.$inject = ['$compileProvider'];
    module.exports = configCompile;

    function configCompile($compileProvider) {

        $compileProvider.directive('projCompile', projCompile);

        function projCompile($compile) {
            return {
                scope: {
                    compile: "=",
                    scope: "=?",
                },
                link: link,
            }

            function link(scope, element, attrs) {
                var scope_child = scope.$new();

                scope.$watch('compile', function () {

                        element.empty().append(scope.compile);
                        $compile(element.contents())(scope_child);
                    }
                );

                scope.$watch('scope', function () {
                        scope.scope = scope.scope || {};
                        scope_child = scope.$new();
                        for (var idx in scope.scope) {
                            scope_child[idx] = scope.scope[idx];
                        }
                        scope_child.$this = scope.scope;

                        element.empty().append(scope.compile);
                        $compile(element.contents())(scope_child);
                    }
                );

            };
        };
    }

})

1 个答案:

答案 0 :(得分:1)

这里的窍门是忘掉angularJS代码,专注于指令的作用。 (从代码中看不出来。)

一旦您知道了指令的目的是什么,如果仍然需要,则查找如何在Angular 6中实现该目标。如果找不到答案,请返回Stack Overflow,并提供有关如何处理的更具体的问题。使用Angular 6代码中的示例尝试在Angular 6中实现X。