Angular:未定义编译

时间:2016-04-07 07:10:18

标签: javascript angularjs

我长期面对一个问题。你能帮我解决这个问题。 实际上,我想在很多地方使用table指令。所以我创建了一个指令并将角度UI网格绑定到它中。但是我收到了编译错误。

  

错误:angular.min.js:102 ReferenceError:未定义编译

但我可以加载网格内容

我在这里做错了什么?

HTML
<div ng-controller="ctrl1 as two">
    <ltcg-table><ltcg-table>    
</div>
<div ng-controller="ctrl2 as two">
    <ltcg-table><ltcg-table>    
</div>

JS

myApp.directive('ltcgTable', function($compile) {
            return {
                restrict: 'E',
                transclude: true,       
                replace: false,                            
                scope: {  },
                controller: Controller,
                controllerAs: 'Controller',
                bindToController: true,            
                compile: compile   
            }

        });

1 个答案:

答案 0 :(得分:0)

compile函数(compile: compile的第二部分)未定义。它应该是以下形式的函数:

function compile(tElement, tAttrs, transclude) { ... }

所以尝试像这样定义指令:

myApp.directive('ltcgTable', function($compile) {
    return {
        restrict: 'E',
        transclude: true,       
        replace: false,                            
        scope: {  },
        controller: Controller,
        controllerAs: 'Controller',
        bindToController: true,            
        compile: function(tElement, tAttr, transclude) {
            //do some stuff here
        }   
    }

});

或者,或者,如果您不需要做任何特殊操作并且网格按原样工作,只需将compile字段保留在方向规范之外。