Стандартный шаблон магистрали

Я очень новичок в магистрали, но мне удалось заставить ее работать из учебника. Но когда я хочу перенести эти приложения на базовый шаблон, я застреваю в шаблоне. Как мне получить доступ к моей модели из моего шаблона? или даже из самого файла js? Я застрял здесь на некоторое время.

Backbone Boilerplate относится к https://github.com/tbranyen/backbone-boilerplate.


person Athiwat Chunlakhan    schedule 19.03.2012    source источник
comment
Можете ли вы дать некоторые подробности/фрагменты, показывающие, какой код не работает?   -  person rfunduk    schedule 19.03.2012


Ответы (1)


Для большинства библиотек шаблонов javascript создание шаблонов происходит в два этапа.

  1. Передайте строку (обычно содержащую HTML) функции «компиляции» механизма шаблонов. Это возвращает вам «шаблонную функцию», которую вы можете выполнить. Это должно произойти только один раз для каждого шаблона за все время существования вашего приложения.
  2. Преобразуйте шаблон в вывод (обычно HTML), вызвав функцию скомпилированного шаблона и предоставив «контекст» данных, которые будут доступны для шаблона. Это можно делать неоднократно с разными данными контекста для вывода другого HTML.

.

//Compile your template string into a function
//Happens 1 time only then you can cache the function
var templateFunction = _.template("<p>Your <%- part %> is so <%- description %></p>");

//Generate your output HTML with varying sets of data.
var html1 = templateFunction({part: "nose", description: "big"});
//html1 has "<p>Your nose is so big</p>";
var html2 = templateFunction({part: "cat", description: "fat"});
//html2 has "<p>Your cat is so fat</p>";

Это та же основная идея для шаблонов подчеркивания, JST, jade и большинства других шаблонизаторов. «Контекстные данные» — это то, как ваш шаблон получает доступ к вашей модели. Если вы хотите, вы можете предоставить ему прямой доступ к базовой модели, предоставив контекст, например: {model: myModel};. Затем в своем шаблоне вы можете сделать что-то вроде <%= model.get("displayName") %>.

person Peter Lyons    schedule 19.03.2012