2

HTMLコンテンツを動的に追加したいのですangularJsが、エラーが発生します:

"$compile is not defined"

その理由は何ですか?

コード

<td ng-repeat="user in users[0].yds" data-title="'Timeline'" sortable="timeline" style="text-align: center" >
    <div class="circle_dynamic"></div>
</td>


angular.module('elnApp')
  .controller('ProgramtableCtrl', function ($scope, $location, $filter, ngTableParams,    
     programTableService) {
        for(var i=0; i<=$scope.users[0].projects.length; i++){
            for(var j=0; j<$scope.users[0].projects[i].results.length; j++){

                if($scope.users[0].projects[i].results[j] == 0){

                    $(".circle_dynamic").html(
                      $compile(
                         ""
                      )(scope)
                    );
                    console.log('rm')
                }else{

                    $(".circle_dynamic").html(
                      $compile(
                         "<i ng-class='circle_class' style='position: absolute;'></i>"
                      )(scope)
                    );
                    console.log('add')
                }
            }

        }

    }, true);

}});

HTMLコンテンツを動的に追加する方法は? 助けてください

4

4 に答える 4

0

「$compile is not defined」は、コントローラーに注入するのを忘れたために発生します。

$compile で HTML コンテンツを動的に追加しても問題ありません。ただし、コントローラーでは実行しないでください。ディレクティブで実行してください。

于 2013-08-22T09:03:33.460 に答える
0

angularjs では、ベスト プラクティスとして、DOM 操作にディレクティブを使用する必要があります。

なぜコンパイルする必要があるのですか?

于 2013-08-22T06:38:02.110 に答える