JSRender оставляет поля пустыми

У меня проблемы с отображением шаблона, мои данные выглядят так:

var data = {"addresses":
                [{"Title":null,
                  "Name":null,
                  "Address1":"Add 1.1",
                  "Address2":"Add = 2.1",
                  "Town":"Town1",
                  "County":"County 1",
                  "Country":"United Kingdom",
                  "Postcode":"CV10 1RH",
                  "CountryId":229},
                 {"Title":null,
                  "Name":null,
                  "Address1":"Add 1.2",
                  "Address2":"Add = 2.2",
                  "Town":"Town2",
                  "County":"Count 2",
                  "Country":"United Kingdom",
                  "Postcode":"CV10 2RH",
                  "CountryId":229}
                 ]};

И мой шаблон хранится в javascript и отображается следующим образом:

var defaultAdressSelectorTemplate = '<label for="addressSelector">Select Adress:</label><select id="addressSelector" name="addressSelector">{{#each addresses}}<option>{{>Address1}}</option>{{#/each}}</select>';          

$.templates({ addressTemplate: defaultAdressSelectorTemplate });

html = $.render.addressTemplate( data );

У меня проблема в том, что {{>Address1}} всегда отображается пустым. Что я делаю не так?


person ilivewithian    schedule 18.06.2012    source источник


Ответы (2)


Используя последнюю версию JSRender, которую вы хотите использовать {{for}}

var defaultAdressSelectorTemplate = '<label for="addressSelector">Select Adress:</label><select id="addressSelector" name="addressSelector">{{for addresses}}<option>{{>Address1}}</option>{{/for}}</select>';

пример jsfiddle

person Mark Coleman    schedule 18.06.2012

Попробуйте использовать метод jQuery.parseJSON() перед рендерингом шаблона.

var renderedTemplate = $("#templateId").render($.parseJSON(data));
$("#dataGridId").html(renderedTemplate);
person SashaMo    schedule 18.03.2013