2017-01-20 8 views
3

は私のコードは、私は簡単にそれを行うことができます一つの方法は、(slice()を使用することによって)包まれた3つの項目を取得することですhttp://jsfiddle.net/5kkja1ua/ハンドル+ JSON

<ul id="results"></ul> 

<script type="text/x-handlebars-template" id="item_tmpl"> 
    {{#json}} 
    <p>  {{index}}: {{title}} </p> 
    {{/json}} 

    <button>next</button> 
</script> 

var dataObject = { 
    json:[ 
    { 
    "index": 0, 
    "title": "IMAGEFLOW" 
    }, 
    { 
    "index": 1, 
    "title": "ENERSOL" 
    }, 
    { 
    "index": 2, 
    "title": "BUNGA" 
    }, 
    { 
    "index": 3, 
    "title": "BITENDREX" 
    }, 
    { 
    "index": 4, 
    "title": "MAROPTIC" 
    }, 
    { 
    "index": 5, 
    "title": "AEORA" 
    }, 
    { 
    "index": 6, 
    "title": "PYRAMIA" 
    }, 
    { 
    "index": 7, 
    "title": "ANIXANG" 
    }, 
    { 
    "index": 8, 
    "title": "SNORUS" 
    } 
] 
}; 

var tpl_source = $("#item_tmpl").html(); 
var h = Handlebars.compile(tpl_source); 
var content = h(dataObject); 

// output 
var results = document.getElementById("results"); 
results.innerHTML = content; 

であるdiv要素でと隠して表示する。しかし、このメソッドは最初にロット全体をロードする必要があります。

可能な場合は、3つのアイテムをグループごとに表示することが可能なのかどうか知りたいですか?可能であればjsonデータを分割するか?

0: IMAGEFLOW 

1: ENERSOL 

2: BUNGA 

次に、次の3つの項目を表示するなどしてください。おかげ

答えて

2

何テンプレートの意志が

<script type="text/x-handlebars-template" id="item_tmpl"> 
    {{#each_from_to json startFrom rowsOnPage}} 
    <p>  {{index}}: {{title}} </p> 
    {{/each_from_to}} 
</script> 

チェックこのフィドルのように見えることをした後

Handlebars.registerHelper('each_from_to', function(ary, from, max, options) { 

    from || (from = 0); 
    var result = [ ]; 

    for(var i = from; i < from + max && i < ary.length; ++i) 
     result.push(options.fn(ary[i])); 

    return result.join(''); 
}); 

のように、ハンドルバーに/からのパラメータに対応無しでそれぞれを使用するためのヘルパーを作成する程度。あなたの問題を解決しますか? http://jsfiddle.net/5kkja1ua/1/

+0

多くのありがとう@VadimB、ヘルパーを使用したことはありません。どうすれば元に戻すことができますか?新しいヘルパーを作成する必要がありますか? – olo

+1

または、ただ1つのブール型パラメータを現在のヘルパーに追加し、 '#each_from_to json startFrom rowsOnPage false'に基づいて方向を変更してください。あなたのヘルパー宣言は 'Handlebars.registerHelper( 'each_from_to'、function(ary、from、max、forward、options){if(forward === undefined){forward = true;}' – VadimB

+0

のようになります。最後の1つの質問、私はヘルパーを使用したことがないので、単にデバッグする方法や "知りたい"場合はjsonデータの "最初"/"最後"ビットなので、隠して "次へ"ボタンを表示することができます。 – olo