2013-12-19 5 views
0

Есть ли способ вложить частичные части (фрагменты HTML) в Meteor?Как установить фрагменты HTML (Partials) в Метеор?

Почему я не могу сказать,

<template name="foo">hello world!</template> 
<template name="bar">{{> foo}}</template> 
<template name="baz">{{> bar}}</template> 

?

Это очень распространенная вещь, которую нужно делать на любой странице HTML, и это обычная функция усов и ручек. Почему Метеор терпит неудачу, когда я пытаюсь это сделать?

+1

Создайте новый проект, добавьте свой код в конец файла .html, добавьте '{{> baz}}' в основной шаблон. Все работает так, как ожидалось. Я подозреваю, что что-то происходит с вашим кодом. –

+1

Вы можете ... Они делают это в каждом из [примеров] (http://www.meteor.com/examples/leaderboard). Вы должны разместить свой шаблон верхнего уровня внутри шаблона тела: ' {{baz}}' – sbking

ответ

0

Чтобы уточнить, что означает sbking ...

в таблице лидеров примера имеет один leaderboard.html файл https://github.com/meteor/meteor/blob/devel/examples/leaderboard/leaderboard.html

<head> 
    <title>Leaderboard</title> 
</head> 

<body> 
    <div id="outer"> 
    {{> leaderboard}} 
    </div> 
</body> 

<template name="leaderboard"> 
    <div class="leaderboard"> 
    {{#each players}} 
     {{> player}} 
    {{/each}} 
    </div> 

    ... 
</template> 

<template name="player"> 
    ... 
</template> 

Но это может быть разделено на множество файлов, так как метеор смотрит на всех из них , например

leaderboard.html бы

<template name="leaderboard"> 
    <div class="leaderboard"> 
    {{#each players}} 
     {{> player}} 
    {{/each}} 
    </div> 
    ... 
</template> 

и player.html бы

<template name="player> 
    ... 
</template> 

и это будет по-прежнему работать !!!! черная магия!

0

Полная документация Метеора предоставляет пару замечательных простых примеров, которые можно найти в разделе this, а также дополнительную полезную информацию, чтобы вы могли начать работу. В принципе, единственное, что вам нужно, чтобы убедиться, что вы делаете ваш шаблон верхнего уровня, содержащийся в <body> тег как так:

<body> 
    {{> a}} 
</body> 

<template name="a"> 
    Top-Level Template 
</template> 

Затем вы можете вложить столь же глубоко, как вы хотели бы оттуда вниз к вашему глубочайшему шаблону:

<template name="a"> 
    Top-Level Template 
    {{> b}} 
</template> 

<template name="b"> 
    Mid-Level Template 
    {{> c}} 
</template> 

<template name="c"> 
    ... 
</template> 

Кроме того, ваши шаблонам не должны быть определены в том же HTML-файл в качестве <body> определения. Все они могут быть определены в одном файле или разделены на другой файл для каждого шаблона (что становится гораздо более хорошей идеей, когда ваши шаблоны становятся достаточно большими и сложными).

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

  • Нет связанных вопросов^_^