Как да добавите шаблонен обект на Poirot към DOM с методи на класа на изглед - Mustache & Rails 3

Имам приложение rails 3, което хваща „публикация“ чрез ajax и вмъква върнатия json в шаблон за мустаци, използвам Poirot както за клиентски, така и за сървърни шаблони, но имам проблем с изобразяването на шаблона, след извикването на ajax, с моите дефинирани методи на клас изглед.

Методите работят добре при изобразяване на шаблона за мустаци от сървъра в релси, но методите не работят в шаблона на javascript и не съм сигурен как след това да изобразя данните, вмъкнати в js шаблона извън js шаблона.

Ако моят View Class изглежда така:

module Posts

  class PostView < Poirot::View

    def user_url
       user_path(post.user_id)
    end

    def user_name
      post.user.name
    end

  end

end

и моят шаблон изглежда така:

<h1>{{ title }}</h1> //posts title

<p>Author: <a href="/bg{{ user_url }}"/>{{ user_name }}</a>

Това работи добре, когато просто:

<%= render 'post' %>

... всички дефиниции са включени и извежда, както очаквам.

Но когато изобразя този шаблон от javascript:

poirot.post(data)

...всички методи на клас изглед не са налични.

И така, как да извлека данните от js шаблона и да го вмъкна като обикновен html/mustaches???

Мислех, че нещо подобно ще свърши работа:

var html = poirot.post(data)
$('#showPost').append(html);

Но все още получавам шаблона без методи на изглед. Аз съм съвсем нов в js, така че всяка помощ ще бъде много оценена.

Благодаря


person Darcbar    schedule 04.03.2012    source източник


Отговори (1)


Класът на изглед на poirot може да се интерпретира само от ruby, така че когато изобразявате шаблон на мустаци от сървъра, имате достъп до методите на класа на изгледа, но когато изобразявате шаблона на клиента чрез javascript, вече нямате достъп до тези методи.

Handlebars.js е разширение на шаблонния език на Mustache. Handlebars.js ви позволява да пишете помощни методи на javascript, които да използвате в шаблони.

person Darcbar    schedule 07.03.2012