如何从AngularJS函数返回html?

Kam*_*rai 4 html controller function angularjs

我是全新创建AngularJS样式的代码。我正在尝试以AngularJS格式重新创建现有网站。

我终于想出了如何在外部文件中制作应用/控制器并提供控制器功能的方法。然后,我可以让那些函数返回变量(尤其是字符串)来填充.html文件中的信息,但是当我使用html标记时,它们将用作.html中的文字。

我试图找出如何以类似的方式来填充我的html模板,但是html可以正常工作。

在其他JS格式中,我可以写到文档/响应中,或者至少让函数返回一个值,然后让原始的JS / HTML将返回值写为html。

我正在尝试在页脚中执行类似的操作,但是Footer()具有一个需要在两行中显示的字符串。

遵循的示例代码(我将其编辑为重要的内容):HTML:

<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
        <script language="JavaScript" src="./Universal.js" runat="server"></script>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <link href="./Main.css" rel="stylesheet" type="text/css">
    </head>
    <body id="idBody" ng-app="Universal">
        <table id="idTableMain">
            <tr id="idFooterRow">
                <td id="idFooterMain" colspan="3">
                    <p id="idFooterContent" ng-controller="UniversalController">
                        {{Footer()}}
                    </p>
                    <p id="idFooterManagement" ng-controller="UniversalController">
                        {{WebMaster()}}
                    </p>
                </td>
            </tr>
        </table>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

应用/控制器:

var Universal = angular.module("Universal", []);

Universal.controller("UniversalController", ['$scope', function ($scope)
    {
        $scope.Footer = function()
        {
            $scope.vResult = "© Copyright 2012 All rights reserved<br>";    
            $scope.vResult += "House That Kamurai Built";
            return $scope.vResult;
        };

        $scope.WebMaster = function()
        {
            $scope.vResult = "Website managed by Kamurai.";
            return $scope.vResult;
        };
    }]);
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 5

用于ng-bind-html在页面上显示HTML,但是在执行此操作之前,您应该html通过调用$sce.trustAsHtml方法将其设置为可信任。

$scope.Footer = function() {
    $scope.vResult = "© Copyright 2012 All rights reserved<br>";
    $scope.vResult += "House That Kamurai Built";
    return $sce.trustAsHtml($scope.vResult);
};
Run Code Online (Sandbox Code Playgroud)

HTML

<p id="idFooterContent" 
  ng-controller="UniversalController" 
  ng-bind-html="Footer()">
</p>
Run Code Online (Sandbox Code Playgroud)

演示版

建议:您可以ng-controller="UniversalController"直接放在桌子上,而不要在页面上放置两次。我不知道您有什么特殊情况,导致您到达那里。