Можно ли использовать сложный объект json с шаблоном Prototype? - PullRequest
0 голосов
/ 13 сентября 2010

Скажем, у меня есть объект, такой как:

{
    id: 345,
    title: 'Some title',
    body: 'Here be a lot of text',
    author: {
         id: 1
         name: Bob
         email: bob@example.com
    }
}

Как бы я ссылался на свойства автора в моем шаблоне

например,

var template = new Template('
     <div class='blog_post'>
         <h1><a href='/blog/post/#{id}'>#{title}</a></h1>
         <div>#{body}</div>
         <div><a href="mailto:#{author_email}">#{author_name}</a></div>
     </div>
');

1 Ответ

0 голосов
/ 13 сентября 2010

Да, это возможно, просто используйте точечную запись, смотрите здесь http://jsfiddle.net/nBfr8/6/

Я переписываю код здесь:

var o = {
    id: 345,
    title: 'Some title',
    body: 'Here be a lot of text',
    author: {
         id: 1,
         name: 'Bob',
         email: 'bob@example.com'
    }
};
var template = new Template(
     '<div class="blog_post">\n' +
         '\t<h1><a href="/blog/post/#{id}">#{title}</a></h1>\n' +
         '\t<div>#{body}</div>\n' +
         '\t<div><a href="mailto:#{author.email}">#{author.name}</a></div>\n' +
     '</div>'
);

alert(template.evaluate(o));

Вы также допустили некоторые синтаксические ошибки (например, забыли апострофы илидвойные кавычки), я от них избавился.

...