【问题标题】:Jade not correctly rendering elements with ng-view directiveJade 无法使用 ng-view 指令正确渲染元素
【发布时间】:2014-08-10 00:23:55
【问题描述】:

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

这是翡翠(为了说明问题,稍微缩短了一点):

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>


关于为什么会发生这种情况的任何想法?

【问题讨论】:

  • 已经尝试过div(ng-view="") ?
  • &lt;!-- ngView: --&gt; 很可能是 Angular 在看到 &lt;div ng-view&gt; 并且没有在其中显示的路径时创建的占位符。检查您的 $routeProvider 配置。
  • 谢谢大家。 @Infer-On 我确实尝试过并得到了相同的结果。看来我的 JS 有一个小错误,所以现在它按预期工作。但是@NikosParaskevopoulos,我不知道Angular会自动评论ng-view元素,你知道这是否记录在某处吗?请将此添加为答案,以便我将其标记为已接受。

标签: node.js angularjs pug


【解决方案1】:

这实际上与翡翠无关。正如@NikosParaskevopoulos 的评论中所述,&lt;!-- ngView: --&gt; HTML 评论是 Angular 在看到 &lt;div ng-view&gt; 并且无法在其中显示时创建的占位符。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2018-05-07
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多