List.js 995 Bytes
import template from "./List.html";
angular.module("esNgAntd").directive("antdList", function ($compile) {
    return {
        controllerAs: "antdList",
        restrict: "E",
        transclude: true,
        replace: true,
        scope: {
            header: "@",
            footer: "@",
            dSource: "=",
            renderItem: "&",
            context: "=",
        },
        template: template,
        link: function ($scope, $element, $attrs, $controllers, $transclude) {
            let container = $element[0].querySelector(".ant-list-items");

            if ($scope.dSource) {
                let items = $scope.dSource.map(function (item) {
                    return $scope.renderItem({
                        item,
                    });
                });
                container.innerHTML = items
                    .join("")
                    .replace(/\$scope/g, "context");
                $compile(container)($scope);
            }
        },
    };
});