无法读取未定义的属性'compile'。似乎无法发现错误

时间:2016-05-03 09:37:30

标签: javascript html angularjs angularjs-directive

我正在开发一个业余爱好项目,我正在制作动态代码,我希望Angular能够编译。

在chrome中我收到以下错误: 无法读取未定义的属性'compile'。

以下是一些代码示例。

JS

$scope.oneC = "<button dynamic='right' id='rightarrow' class='fa fa-arrow-right fa-5x' aria-hidden='true' ng-click='next()' style='float: right;'></button>";

HTML

<div id="one" class="columns" compile="oneC"></div>

在我的app.js中,我有一个编译指令,它在之前的项目中工作,其中的设置是相同的。

App.js

kakalunchApp.directive('compile', ['$compile', function ($compile) {
return function(scope, element, attrs) {
  scope.$watch(
    function(scope) {
      // watch the 'compile' expression for changes
      return scope.$eval(attrs.ngHtmlCompile);
    },
    function(value) {
      // when the 'compile' expression changes
      // assign it into the current DOM
      element.html(value);

      // compile the new DOM and link it to the current
      // scope.
      // NOTE: we only compile .childNodes so that
      // we don't get into infinite loop compiling ourselves
      $compile(element.contents())(scope);
    }
);

};     }]);

我在控制器中包含了$ compile关键字

kakalunchApp.controller('MainCtrl', function ($scope, $window, $compile, $sce) 

请告诉我你是否能发现错误。提前谢谢!

1 个答案:

答案 0 :(得分:0)

从&#39;编译&#39;更改您的指令名称别的什么。