AngularJS ng-include 不起作用

AngularJS ng-include doesn't work

这是 main.html 文件的来源

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

    <script>
        var myApp = angular.module ('myApp',[]);
        myApp.controller('myCtrl', function ($scope){
            $scope.name = "Tim";
            $scope.partialStuff = [ 'a', 'b', 'c' ];
            alert(window.angular.version.full);//1.3.14 is displayed
        });
    </script>
</head>
<body ng-app="myApp">
    <div ng-controller="myCtrl">
            {{name}}
        <div ng-repeat="partialVar in partialStuff">
            Hello: <div ng-include src="'part.html'"></div>
        </div>
    </div>
</body>
</html>

还有一个 part.html 包含纯文本 'part' - 只有几个符号。

两个文件 main.htmlpart.html 都位于同一文件夹中。

当我在浏览器中打开 main.html 时,我没有看到来自 part.html 的三个重复内容,但是我看到了三个 Hello:。似乎 part.html 未加载。

为什么?

谢谢。

请将其放在 body 标签内以使其生效

<script type="text/ng-template" id="part.html">
  part
</script>
<div ng-include="'part.html'"></div>

应该是我认为的正确语法。 更多信息 here

编辑:另外,文件路径应该来自根而不是 html 文件的相对路径。

您不能使用 file:// 协议直接导入本地文件。

你应该看看: Is it possible to use ng-include without web server?

ng-include 可以用作:

<div>
    <ng-include src="demo.html"></ng-include>

这肯定会像普通 src 一样包含您的文件。 ng-include 在本地服务器 also.There 上工作,不需要像 tomcat 这样的额外服务器到 运行 这个文件。 这将 运行 就像一个 html 文件。