附加属性并将其绑定到AngularJS指令中

附加属性并将其绑定到AngularJS指令中,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我搜索了很多,尝试了不同的东西。但到目前为止,一切都不起作用 我的任务是,通过angular中的指令在ng类属性中的scope中添加一个函数 我有以下标签: <table class="table"> <tr> <td>Content 1</td> <td>Content 2</td> </tr> </table> 到目前为止一切正常。如果我在没有指令

我搜索了很多,尝试了不同的东西。但到目前为止,一切都不起作用

我的任务是,通过angular中的指令在ng类属性中的scope中添加一个函数

我有以下标签:

 <table class="table">
    <tr>
       <td>Content 1</td>
       <td>Content 2</td>
    </tr>
 </table>
到目前为止一切正常。如果我在没有指令的情况下这么难编程,那么附加的类就会被追加。但如果我使用指令执行,则不会对属性求值

请看我的。有两张桌子。第一个使用指令,第二个使用硬编码属性

如您所见,第二个将颜色更改为绿色,这是在指令的控制器中定义的,而第一个不执行任何操作

我不确定我是否走对了这条路

编辑:我发现了一些可能的问题

在我对代码做了一些更改后,它在中运行,但在我的现实世界应用程序中,它的速度非常慢

编辑:它在我的realworld应用程序指令中不起作用

它在没有ng重复的情况下工作

我将第三个案例添加到我的报告中

第一种情况是硬编码->works从designcontroller变为绿色 第二个是指令->works从datacontroller变为蓝色 最后一个在ng repeat中具有相同的指令。->这个不行。
所以你找到了一个有效的方法。如果不看它,很难说为什么你的应用程序速度慢。你确定这个指令就是问题所在吗?但更重要的是,在这一点上,你的问题到底是什么。。。我修好了我的衣服。你会看到三个箱子。第一个是硬编码->工作,第二个是指令->工作,最后一个是ng repeat中的同一指令。这一个已经不起作用了。可能是
 <table class="table" data-ng-class="getTableClass()">
    <tr>
       <td>Content 1</td>
       <td>Content 2</td>
    </tr>
 </table>
angular.module('app', []).directive('table', [ function () {
    return {
        restrict: 'C',
        replace: false,
        controller: function($scope){
            $scope.getTableClass = function(){
                console.log("inner controller");
                return "green";
            };
        },
        compile: function (elem, attr) {
            return {
                pre: function preLink(scope, elem, attrs, controller) {
                    elem.attr("data-ng-class", "getTableClass()");
                },
                post: function postLink(scope, elem, attrs, controller) {}
            }
        }
    };
}])