Jade没有使用ng-view指令正确渲染元素

时间:2014-06-19 12:48:12

标签: node.js angularjs pug

我正在编写一个基本的Node应用程序,只想用Jade渲染索引页面,然后让Angular在前端执行其余操作。

这是Jade(略微缩短以说明问题):

doctype html
html
    include ../includes/head

    body(ng-app="TestApp" ng-controller="TestAppController")

            div(ng-view)

    include ../includes/foot


编译成以下HTML:

<html>

    <head>
        <meta charset="utf-8">
        <title>Example App</title>      
        <link rel="stylesheet" href="/dist/css/app.css">
    </head>

    <body ng-app="ExampleApp" ng-controller="ExampleAppController" class="ng-scope">

        <!-- ngView:  -->

        <footer class="page-footer">
            <ul class="page-footer-links">
                <li><a href="http://www.twitter.com/someusername" target="_blank">Some Twitter User</a></li>
            </ul>
        </footer>

        <script src="/dist/js/app.min.js"></script>
    </body>
</html>


请注意div(ng-view)现在是呈现的HTML中的HTML注释,而不是带有该指令的DIV:

<!-- ngView:  -->

将Jade中的div(ng-view)更改为以下任何一项对我产生了相同的结果:

ng-view

<div ng-view></div>

| <div ng-view></div>

有关为何发生这种情况的任何想法?

1 个答案:

答案 0 :(得分:2)

这实际上与Jade无关。正如@NikosParaskevopoulos的评论中所述,<!-- ngView: --> HTML评论是Angular在看到<div ng-view>时创建的占位符,并且没有显示在其中的路径。

重新定义我的Angular路线解决了这个问题。