0

Я с трудом понять, как иметь дело с верхним уровнем массивом словарей с использованием handlebars.js с JQueryшаблона Handbars.js с массивом верхнего уровня

Моим объект данных состоит не из словаря с именованным массив (это то, что большинство примеров в Интернете имеют дело). Мой объект данных выглядит следующим образом:

[ 
    { 
    "Type": "TopLevel", 
    "Identifier": "123456789IL", 
    "FullName": "Smith, John H.", 
    "CurrentLocation": "In Building" 
    }, 
    { 
    "Type": "TopLevel", 
    "Identifier": "123456789OL", 
    "FullName": "Doe, Jane M.", 
    "CurrentLocation": "Parking Lot" 
    } 
] 

Вот jsfiddle рабочих (используя объект с именем массива (который я не имею) и нерабочий jsfiddle с моим реальным объектом данных (не . работа)

http://jsfiddle.net/eljaywilson/ZhF5h/ - работает, но не так, как мой объект данных выглядит

http://jsfiddle.net/eljaywilson/ZhF5h/1/ - нет worky

ответ

2

У вас ошибка в шаблоне - вам придется изменить [/ пользователей] к {. {/}}, Как это:

<tbody> 
     {{#.}} 
     <tr> 
      <td>{{Type}}</td> 
      <td>{{FullName}}</td> 
      <td>{{CurrentLocation}}</td> 
      <td>{{Identifier}}</td> 
     </tr> 
     {{/.}} 
    </tbody> 
+0

Doh! Не могу поверить, что я пропустил это, должен учиться на моей копии и вносить ошибки :) Thx! –

+1

Я рад, что не только я это делаю! ;) – geedubb

1

Это должно решить вашу проблему:

var source = $("#some-template").html(); 
var template = Handlebars.compile(source); 

var data = [ 
    { 
    "Type": "TopLevel", 
    "Identifier": "123456789IL", 
    "FullName": "Smith, John H.", 
    "CurrentLocation": "In Building" 
    }, 
    { 
    "Type": "TopLevel", 
    "Identifier": "123456789OL", 
    "FullName": "Doe, Jane M.", 
    "CurrentLocation": "Parking Lot" 
    } 
] 
; 

Handlebars.registerHelper('fullName', function(person) { 
    return person.firstName + " " + person.lastName; 
}); 

$('#myDiv').append(template({ users: data })); 

Объяснение:

данных является массивом, и вы просто обернуть его перед переходом к шаблону.

Fixed jsfiddle здесь: http://jsfiddle.net/akhikhl/bTzf3/1/

+0

Почему .. .........? – geedubb

Смежные вопросы