4

我正在尝试在我的 Jade 模板中使用来自 Angular 的 ng-include 包含一个标题:

doctype html
html(lang="en")
    head
        meta(charset='UTF-8')
        meta(name='fragment', content='!')
        base(href='/')
        title Node Express Angular
        link(rel='stylesheet', href='//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css')
        link(rel='stylesheet', href='/css/syle.css')
    body(ng-app='myApp')
        ng-include(src='\'/partials/header.jade\'')
        div.container
            div.jumbotron.text-center
                h1 Home Page
                p This page is a draft in progress
        script(src='//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.15/angular.min.js')
        script(src='//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js')
        script(src='/js/app.js')

header.jade 中的文本如下:

nav.navbar.navbar-inverse(role='navigation')
ul.nav.navbar-nav.navbar-header
    li
        a(src='/home', class='navbar-brand') Home
    li
        a(src='/about') About
    li
        a(src='/login') Login
    li
        a(src='/register') Register

我都试过ng-include(src='\'/partials/header.jade\'')div(ng-include='\'/partials/header.jade\'')

在 Chrome 开发者控制台中,第一个结果<!--ng-Include: undefined -->和第二个结果:<!-- ng-Include: '/partials/header.jade' -->

有什么线索吗?

4

4 回答 4

9

您使用 Angularng-include而不是 Jade 自己的包含机制是否有特定原因?

body(ng-app='myApp')
    include partials/header

参考Jade 文档

于 2014-05-12T09:54:14.453 回答
1

我创建了一个由 JADE 呈现的 Angular 指令,然后由 Angular 编译到给定的范围......它可以工作!

顺便说一句,我正在为浏览器使用客户端 Jade,CDN 可在此处获得

例如:

html:

<ng-include src="'MyPageWithJadeScript.html'"></ng-include>

MyPageWithJadeScript.html:

<jade>tag#id.class jade text</jade>

角度:

app
.directive('jade',function($compile){
return{
    transclude: true,
    template: '<div ng-transclude></div>',
    restrict: 'E',
    link: function(scope, element){
      element
        .after(
          $compile(
            jade
            .render(
                element.html(),
                {pretty:'\t'}
            )
          )(scope)
        )
        .remove();
    }
};
});

希望你觉得这个有用

于 2015-09-19T14:45:35.050 回答
0

参考官方文档ngInclude,使用下面的代码

div(ng-include="'partials/header.jade'")

如果要直接使用 ngInclude 指令,请使用

ng-include(src="'partials/header.jade'")

于 2014-05-12T08:24:29.123 回答
0

使用 express,我在 views/ 文件夹中有文件 user-description.jade 并将其包含在另一个玉文件中,我简单地使用以下表达式:

div
  include user-description.jade

Jade docs有其他示例。

于 2016-01-22T15:23:55.853 回答