2016-04-19 33 views
0

是否可以使用它?例如這裏:Jade中的多行變量(ex-Pug)

- 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文件?

回答

1

您可以使用LOCALS(Jade)或DATA(Pug)在compile期間導入JSON數據。這是我通過gulpjs和帕格做到的,movieList是在gulpfile.js中創建的數據,而songs.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('../')) 
    }); 
}); 

,並在帕格模板

- 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)