AngularJS ng-include不起作用

时间:2015-04-08 17:00:13

标签: javascript html angularjs angularjs-ng-repeat angular-directive

以下是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>

3 个答案:

答案 0 :(得分:14)

<div ng-include="'part.html'"></div>

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

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

答案 1 :(得分:5)

您无法使用file:// protocol直接导入本地文件。

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

答案 2 :(得分:0)

ng-include可用作:

@Value

这肯定会包含你的文件,就像普通的src一样。 ng-include也在本地服务器上工作。没有必要像tomcat那样添加额外的服务器来运行这个文件。 这将像html文件一样运行。