Javascript $compile显示未捕获类型错误:未定义不是函数

Javascript $compile显示未捕获类型错误:未定义不是函数,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我正在使用以下代码。以特定元素为目标,并在该元素内附加一个,但得到未捕获的typeerror:undefined不是$compile(newDirective)($scope)的函数 $scope.grid=函数(targetElement) { log(“目标元素”,targetElement) var newDirective=angular.element(“ 示例代码 "); targetElement.append(newDirective); $compile(newDirect

我正在使用以下代码。以特定元素为目标,并在该元素内附加一个
,但得到未捕获的typeerror:undefined不是
$compile(newDirective)($scope)的函数

$scope.grid=函数(targetElement)
{  
log(“目标元素”,targetElement)
var newDirective=angular.element(“
示例代码
");
targetElement.append(newDirective);
$compile(newDirective)($scope);
}
试试这段代码

 $scope.grid= function (targetElement)
      {  
       var $div = $("<div style='height:200px' >  Sample code </div>");
       $(targetElement).append($div);

       angular.element(targetElement).injector().invoke(function($compile) {
       var scope = angular.element($div).scope();
       $compile($div)(scope);
      });
     }
$scope.grid=函数(targetElement)
{  
var$div=$(“示例代码”);
$(targetElement).append($div);
angular.element(targetElement).injector().invoke(函数($compile){
var scope=angular.element($div.scope();
$div(范围);
});
}

您能否更深入地了解执行此操作的上下文?是否定义了$compile和$scope?是否注入了
$compile
服务?这意味着您没有注入
$compile
服务。显示完整代码。功能仪表板Ctrl($scope、$routeParams、$q、$http、$timeout、$compile)。。。。。我添加这些行是为了注入$scope和$compile。。。
 $scope.grid= function (targetElement)
      {  
       var $div = $("<div style='height:200px' >  Sample code </div>");
       $(targetElement).append($div);

       angular.element(targetElement).injector().invoke(function($compile) {
       var scope = angular.element($div).scope();
       $compile($div)(scope);
      });
     }