如何防止div上的AngularJS插值?

如何防止div上的AngularJS插值?,angularjs,angularjs-interpolate,Angularjs,Angularjs Interpolate,有没有办法防止div上的插值?我想从中获取原始html并通过如下方式注入$interpolate手动插值: $scope.report = $interpolate($("#myDiv").html())($scope); 使用指令。摘自文件: <div>Normal: {{1 + 2}}</div> // => Normal: 3 <div ng-non-bindable>Ignored: {{1 + 2}}</div> // =>

有没有办法防止div上的插值?我想从中获取原始html并通过如下方式注入
$interpolate
手动插值:

$scope.report = $interpolate($("#myDiv").html())($scope);
使用指令。摘自文件:

<div>Normal: {{1 + 2}}</div> // => Normal: 3
<div ng-non-bindable>Ignored: {{1 + 2}}</div> // => Ignored: {{1+2}}

可以使用使用脚本标记()声明的内联模板


既然您已经定义了模板,那么从模板缓存中获取它不是更好吗<代码>$interpolate($templateCache.get('myDivTemplate'))($scope)是。这样,您就不会因为在指令之外的任何地方进行DOM操作而感到内疚。另外,更好的方法是将
$http
缓存一起使用:$templateCache
,因为这样您就不必假设模板总是在页面中。使用
$templateCache.get('myDivTemplate')
会更干净。谢谢。ngNonBindable是可行的,但我认为使用模板对我来说可能是正确的。
app.directive("myDirective", function( $interpolate ) {
  return {
    compile: function( tElement ) {
      var raw = tElement.html();
      return function( scope, element ) {
        var interpolated = $interpolate( raw )( scope );
        // do something with it
      };
    }
  };
});
   <script type="text/ng-template" id="myDivTemplate">
      Hello my name is {{name}}
  </script>
$scope.report = $interpolate($("#myDivTemplate").html())($scope);