JavaScript内部角度';s(1.4.7)ng视图不';行不通

JavaScript内部角度';s(1.4.7)ng视图不';行不通,javascript,angularjs,Javascript,Angularjs,我有一个进入ng视图的部分页面,我有一个与该页面无关的JS代码,因此我只希望它包含在该页面中,因为我只需要它,并且为了避免index.html中的开销,我尝试了使用ng bind html之类的注入,但没有成功 这里有一些代码可以帮助理解发生了什么 index.html <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <base href="/"&g

我有一个进入ng视图的部分页面,我有一个与该页面无关的JS代码,因此我只希望它包含在该页面中,因为我只需要它,并且为了避免index.html中的开销,我尝试了使用
ng bind html
之类的注入,但没有成功

这里有一些代码可以帮助理解发生了什么

index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <base href="/">

    <title>Node and Angular App</title>

    <!-- CSS -->
    <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/style.css">

    <!-- JS -->
    <script src="libs/angular/angular.min.js"></script>
    <script src="libs/angular-route/angular-route.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular-sanitize.min.js"></script>

    <!-- ANGULAR CUSTOM -->
    <script src="js/controllers/TestCtrl.js"></script>
    <script src="js/appRoutes.js"></script>
    <script src="js/app.js"></script>

</head>
<body ng-app="sampleApp">
    <div class="container">
        <nav>
            <a href="/test">Test</a>
       </nav>

        <!-- ANGULAR DYNAMIC CONTENT -->
       <div ng-view></div>
    </div>
</body>
</html>
app.js

angular.module('TestCtrl', ['ngSanitize']).controller('TestController', function($scope) {

  var str = '<h1>this shows</h1><script>alert("hello")</script><h1>this doesn\'t show</h1>';

  $scope.content = function() { return str; }
});
angular.module('appRoutes', []).config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

  $routeProvider

  .when('/test', {
    templateUrl: 'views/test.html',
    controller: 'TestController'
  })

 $locationProvider.html5Mode(true);
}]);

var-app=angular.module('sampleApp',['ngRoute','appRoutes','TestCtrl'])

我不完全理解您的问题,但如果您想将html注入视图,请尝试将Ngsanize添加到模块中的依赖项列表中,您可以:

controller("mainCtrl", ['$sce', function($sce){
    //function that returns trusted html
    this.htmlStuff = function(){
        return $sce.trustAsHtml("<p>Html String</p>");
    }
}]);
controller(“mainCtrl”、['$sce',函数($sce){
//返回受信任的html的函数
this.htmlStuff=函数(){
返回$sce.trustAsHtml(“Html字符串”

”; } }]);
那么在你看来,你可以

<div ng-controller='mainCtrl as main'>
    <div ng-bind-html="main.htmlStuff()"></div>
</div>


如果这不是你的意思,然后你必须重新表述这个问题,这个句子太长了,无法思考。
ng bind html
不会编译这个范围。
ng bind html
@PankajParkar有什么解决办法吗?@RichardHall你需要在你的应用程序中
ngSanitize
模块重新设计html时,简单的绑定是不起作用的,还需要包括
angular sanitize.js
@richard请尝试在代码中更改这一行:
$scope.content=function(){return str;}
$scope.content=function(){return$sce.trustAsHtml(str);}
。如果这不起作用,您可能必须将字符串拆分为HTML和JS部分,并在适当的部分使用$sce.trustAsHtml()和$sce.TrustashJS()。@user2994666不,只有HTML部分起作用,并且它们显示,至于JS部分,它们不呈现(我已经查看了浏览器的检查器,并且我将其放入的DIV是空的)@RichardHall返回javascript和html trustAsJs()和trustAsHtml()的函数是不同的,您必须将它们分开。但是,它真的值得承受压力吗?