2015-12-21 4 views
1

Учитывая что-то вроде модели post с атрибутом body, есть ли способ получить динамическое динамическое отображение {{link-to}} в пределах атрибута body?{{link-to}} в атрибуте модели?

Пример:

// The model 
post = { 
    body: ` 
    {{#link-to "posts.index"}} 
     <h1>The "{{#link-to}}" is rendered literally!</h1> 
    {{/link-to}}` 
} 

// The .hbs file 
<div class="container"> 
    {{postBody post.body}} 
</div> 

// Helper function to avoid escaping the HTML 
export function postBody(postBody) { 
    return Ember.String.htmlSafe(postBody); 
} 
export default Ember.Helper.helper(postBody); 

Единственное, что я могу думать, чтобы сделать, это ввести статическую ссылку, которая бы привести к полной перезагрузке страницы.

+0

Я не уверен на 100%, но я не думаю, что это возможно после перехода на HTML-бары. Возможно, вы сможете скомпилировать клиентскую часть шаблона, но я не уверен, что вставка его в DOM будет простой. В любом случае, не могли бы вы объяснить, что такое ваш случай использования? Даже если это возможно, это не должно быть сделано. – GJK

+0

Эй @ GJK. Я думаю, что ты прав по всем счетам. Моим вариантом использования является то, что у меня есть модели сообщений в блогах. Я хотел бы сохранить тела каждого сообщения в модели, и сообщения могут ссылаться на прошлые сообщения. В идеале это будет сделано с помощью ссылки, чтобы избежать обновления полной страницы. – kjb

+1

Хорошо, это имеет смысл. У вас есть контроль над сохранением сообщений? Я сделал что-то похожее на это раньше, и так, как я решил, это было помещением заполнителей в текст и сохранением метаданных вместе с текстом. Затем во время выполнения я использовал маршрутизатор для создания URL-адреса и вставки, где были заполнители. Это немного ортогонально этому вопросу, но это возможность, если вы не можете понять этот метод. – GJK

ответ

0

Я думаю, что вы ищете функцию compile. См. here для получения дополнительной информации. Вы бы назвали это так:

Ember.Handlebars.compile(this.get('post.body'); 
+1

Обратите внимание, что Эмбер прекратил использование ручек в 1.10. Это не будет работать для более новых версий. – GJK