Angularjs 动态路由和将响应显示为HTML
我已经为我的应用程序准备了一个简单的例子——花了一段时间才弄清楚通过ajax的动态路由。我从包含要呈现的HTML的服务器脚本控制器返回JSON。但不管我怎么做,Angular都不会将其呈现为HTML——只呈现文本 索引\u simple.htmlAngularjs 动态路由和将响应显示为HTML,angularjs,angular-routing,Angularjs,Angular Routing,我已经为我的应用程序准备了一个简单的例子——花了一段时间才弄清楚通过ajax的动态路由。我从包含要呈现的HTML的服务器脚本控制器返回JSON。但不管我怎么做,Angular都不会将其呈现为HTML——只呈现文本 索引\u simple.html <html id="ng-app" ng-app="cmsApp"> <head> <script src="lib/angular/angular.js"></script>
<html id="ng-app" ng-app="cmsApp">
<head>
<script src="lib/angular/angular.js"></script>
<script src="lib/angular/angular-route.js"></script>
<script src="js/app_simple.js"></script>
<body>
<div>
<ul class="nav navbar-nav">
<li><a href="#/home">Home</a></li>
<li><a href="#/about">About</a></li>
<li><a href="#/test">Test</a></li>
</ul>
<div id="content-view" ng-view style="border:1px solid green;padding:10px;"></div>
</div>
</body>
</html>
从链接返回JSON示例
angular.module('cmsApp', [
'ngRoute'
])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/:name', { template: '{{returned_content | trustAsHtml}}', controller: 'PagesController' });
}])
.controller('PagesController', [
'$scope',
'$http',
'$route',
'$routeParams',
'$compile',
function PagesController($scope, $http, $route, $routeParams, $compile) {
var data = { page:$routeParams.name };
var json_url = '/mobile/route.cfm';
$http.post( json_url, data ).then(function (msg) {
if( msg.data.CONTENT)
{
$scope.returned_content = msg.data.CONTENT;
}
});
}])
.filter('trustAsHtml', function($sce){
return function(input){
return $sce.trustAsHtml(input);
}
});
/家
我认为您忘记了导入下面的javascript文件并将其注入到模块中
<script src="https://code.angularjs.org/1.3.5/angular-sanitize.js"></script>
意味着你想要访问你的routeProvider dynamicallyYes,我正在动态访问routeProvider——但它不会呈现我的HTML——它会在页面上以文本字符串的形式显示返回的内容。如果我将路由器改为从HTML文件中提取HTML,它会显示良好,但从JSON获取内容并使用trustAsHtml过滤器则不会。
{"CONTENT":"The <strong>About Page<\/strong> Page Content"}
{"CONTENT":"The <strong>Home Page<\/strong> Content -- {{extra_angular_scope_var}} "}
<script src="https://code.angularjs.org/1.3.5/angular-sanitize.js"></script>
angular.module('cmsApp', [
'ngRoute','ngSanitize'
])