网站搜索

angularjs - 将 CSS 内容传入指令


有没有一种方法可以在指令中使用 CSS 的内容。我想重用一个指令,然后在该指令中设置类,这样内容就可以显示来自 FontAwesome 的不同图标?

模板

 <div class="modal-tooltip" tabindex="-1">
        <span class="CSS-CLASS-I-WANT-TO-PASS-IN"></span>
        <div class="tooltip-body">
            <span ng-transclude></span>
        </div>
    </div>

指令

restrict = "E";
        scope = {
            alignment: "@"
        };

        template = Templates.toolTip;
        transclude = true;
        controller = ["$scope", ($scope) => {

        }];

.MY-CSS-CLASS-我-想-更改-内容-的

content: "\f059";

答案#1

你可以将 FontAwesome 类传递给你的自定义指令以应用到模板上。

在我的例子中,FontAwesome 类是使用 icon 属性设置的。

 <custom-button icon="fa fa-facebook"> Facebook</custom-button>

在我的指令中,我获取这个值并将类应用到我的 <span> 标签上。

app.directive('customButton', function() {
        return {
           restrict: 'E',
           transclude: true,
           scope: {
              icon: '@'
           },
           template: "<button>" +
                        "<span class={{icon}}>" +
                        "</span>" + 
                        "<strong ng-transclude>" +
                        "</strong>" +
                     "</button>"
           } 
});

这是一个包含我示例的 JSFiddle 链接:https://jsfiddle.net/cpgoette/ufgys7j0/