2012-07-12 48 views
40

Tôi có thuộc tính ember bao gồm thẻ html (<br />, <strong>, <p>, <span> và các nội dung tương tự).Hiển thị thuộc tính bao gồm thẻ html

Làm cách nào tôi có thể yêu cầu ember không thoát khỏi văn bản này? Có bất kỳ trình trợ giúp nào của Trình điều khiển tay lái mặc định từ ember không hoặc tôi có cần phải viết của riêng mình không?

Trả lời

79

Từ http://handlebarsjs.com/

tay lái HTML-thoát giá trị trả về bởi một {{expression}}.
Nếu bạn không muốn Handlebars thoát khỏi giá trị, hãy sử dụng "triple-stash".

{{{expression}}}

+2

Chỉ trong trường hợp nếu có ai đó đang tìm biểu tượng tương đương, biểu thức '==' của nó – dhilipsiva

+0

Như đã đề cập bởi morhook, bạn cũng có thể bọc giá trị trong [Ember.String.htmlSafe()] (http://emberjs.com/api/classes/Ember.String .html # method_htmlSafe). Điều này rất hữu ích nếu giá trị đang được chuyển vào một addon/component mà bạn không có toàn quyền kiểm soát. – kjb

16

Trong Ember.js bạn có thể làm điều này thông qua phương thức htmlSafe, được bổ sung vào nguyên mẫu String, xem http://jsfiddle.net/pangratz666/jNAQ6/:

tay lái:

<script type="text/x-handlebars" > 
    {{App.html}} - {{App.unescaped}} 
</script>​ 

Javascript:

App = Ember.Application.create({ 
    html: '<b>bold text</b>', 
    unescaped: function(){ 
     return this.get('html').htmlSafe(); 
    }.property('html') 
});​ 
+0

Điều này không hoạt động. {{App.html}} sẽ loại bỏ các phần tử html cũng như – TMQuinn

+0

'.htmlSafe()' là phương pháp tôi cần – kevnk

+2

Đối với Ember mới nhất (2.6.1), tôi đã sử dụng phương pháp [Ember.String.htmlSafe()] (http://emberjs.com/api/classes/Ember.String.html#method_htmlSafe) – morhook

3

Ember 2.x, sử dụng JavaScript

Để thực hiện một chuỗi unescaped và đầu ra sử dụng Ember mẫu bạn có thể sử dụng htmlSafe helper.

Ember.String.htmlSafe('<div>someString</div>') 

Chuỗi trả về sẽ không được HTML thoát bằng công cụ mẫu Handlebars.

http://emberjs.com/api/classes/Ember.String.html#method_htmlSafe

Sử dụng tay lái Chỉ

Ngoài ra, bạn có thể vượt qua HTML liệu đến tay lái mẫu và nhận được đầu ra HTML liệu bằng cách sử dụng dấu ngoặc triple

Bên tay lái Template

<div>{{{raw_html_content}}}</div> 
Các vấn đề liên quan