2016-02-02 35 views
0

我想咕嚕組裝靜態站點,一切工作正常生成,但我有一個問題得到一個數組的部分grunt-assemble with handlebars:如何獲得一個數組到一個部分?

這是我的部分(圖像slider.hbs)應recive陣列

<div class="swiper-container {{className}}"> 
    <div class="swiper-wrapper"> 
     {{#each images}} 
      <img class="swiper-slide" src="{{ ../path }}/{{image}}" alt=""> 
     {{/each}} 
    </div> 
</div> 

,並從該部分(辦公slider.hbs)我想發送包含

... 
<h1>images from the office</h1> 
{{> image-slider 
    className='office-slider' 
    path='..img' 
    images=[ 
     "image": "t_1.jpg", 
     "image": "t_2.jpg", 
     "image": "t_3.jpg", 
     "image": "t_1.jpg", 
     "image": "t_2.jpg", 
     "image": "t_3.jpg", 
    ] 
}} 
... 

辦公室slider.hbs數據office.hbs

... 
{{>office-slider}} 
... 

「類名」和「路徑」工作正常,但如果我試圖把數組作爲一個數據我只得到一個錯誤

警告:意外的令牌非法使用--force繼續。 由於警告而中止。

我做錯了什麼?

格雷戈爾

+1

不要放在模板中的數據,他們應該從你的負擔釋放你... – dandavis

+0

我應該怎麼辦?這個作品很容易另一個例子是一個按鈕,我可以簡單地將labeltext放入部分。 {{> button label =「myLabel」}} button.hbs:

+0

我剛纔注意到圖像數組是畸形的。我仍然不建議把大量的數據作爲參數,但是HB解析器可能不會爆炸,如果你修復陣列... – dandavis

回答

0

在建議從@dandavis我分隔自己的數據從模板的,這是它如何工作的

我gruntfile

assemble: { 
    options: { 
     partials: ['partials/**/*.hbs'], 
     layoutdir: 'layouts', 
     layout: ['default.hbs'], 
     flatten: true, 
     data: ['pages/**/*.json'], <--load all jsons (contains the data) 
     helpers: ['js/helper-*.js'] 
    }, 
    site: { 
     src: ['pages/**/*.hbs'], 
     dest: 'build/pages/' 
    } 
} 

創建home.json(在我的情況下,它位於home.hbs旁邊的「pages/home /」目錄中)

{ 
    "title": "pagetitle", 
    "gallery1": ["item1.jpg", "item2.jpg","item3.jpg"] 
} 

in一邊我home.hbs我加載部分的數據從home.json

{{home.title}} 
{{>image_bar data=home.gallery1}} 

,現在我在我的部分(image_bar.hbs)完全訪問數據

<ul> 
    {{#each data}} 
     <li><img src="../img/{{this}}"></li > 
    {{/each}} 
</ul>