5

可以使用吗?例如这里:

- var movieList = [{title: "Ocean's Eleven", rating: 9.2}, {title: "Pirates of the Caribbean", rating: 9.7}];

mixin movie-card(movie)
  h2.movie-title= movie.title
  div.rating
    p= movie.rating

for movie in movieList
  +movie-card(movie)

我不想-在每行的开头使用。如果不可能,也许有某种方法可以导入多行 JSON 文件?

4

2 回答 2

7

从 2.0.3 版开始,可以使用以下语法:

-
  var arr = ["Very", "Long",
             "Array"];

拉取请求链接:https ://github.com/pugjs/pug/pull/1965

于 2018-06-12T10:04:49.647 回答
2

您可以在编译期间使用 LOCALS (Jade) 或 DATA (Pug)导入 JSON 数据。这就是我通过 gulpjs 和 Pug 执行此操作的方式,movieList 将是在 gulpfile.js 中创建的数据,而 song.json 将是一个外部文件。如果您使用的是任务管理器或快递等,从您的代码示例中不清楚...

gulpfile.js

var fs = require('fs'),
    gulp = require('gulp'),
    pug = require('gulp-pug'),
    movieList = [{title: "Ocean's Eleven", rating: 9.2}, {title: "Pirates of the Caribbean", rating: 9.7}];

gulp.task('markup', function() {
  gulp.src('./markup/*.pug')
    .pipe(pug({
      data: {
      // in Jade, this would be "locals: {"
        "movies": movieList,
        "music": JSON.parse( fs.readFileSync('./songs.json', { encoding: 'utf8' }) )
      }
    )
    .pipe(gulp.dest('../'))
  });
});

在 Pug 模板中

- var movieList = locals['movies'] // assuming this will eventually be "= data['movies']"
- var musicList = locals['music'] // assuming this will eventually be "= data['music']"

mixin movie-card(movie)
  h2.movie-title= movie.title
  div.rating
    p= movie.rating

for movie in movieList
  +movie-card(movie)

mixin song-card(song)
  h2.song-title #{song.title}
  div.rating
    p #{song.rating}

for song in musicList
  +song-card(song)
于 2016-05-04T14:54:47.567 回答