1

在我看来,我有以下属性:

avatar: function()
{
    var image = new Image();
    image.setAttribute('src', 'img/people/%@'.fmt('Finck_Brian.jpg'));
    return image;
}
.property(),

基本上我要做的就是使用标准{{ person.avatar }}标记将返回的元素插入到 DOM 中。但是,我得到的只是以下内容:

[对象 HTMLImageElement]

我确信在 EmberJS 中有一种方法可以取消转义返回的字符,因为它将 HTML 转换为安全字符串。类似于 unescape 的东西?

4

2 回答 2

2

我认为最简单的 ember 是使用 {{bindAttr}} 帮助器。在您的模板中,尝试以下操作:

<img {{bindAttr src="person.avatar"}}></img> 

和你的头像属性是这样的:

avatar: function () {
  return 'img/people/%@'.fmt('Finck_Brian.jpg');
}.property()

这是一个小的 jsfiddle 来说明:http: //jsfiddle.net/Sly7/dWr8T/

现在回答你的问题,你有一个帮助器来返回一个安全的 html 字符串。我认为这应该像 'your string'.htmlSafe() 一样简单(实际上 Ember 使用此函数丰富了 String 原型,请参阅http://docs.emberjs.com/#doc=packages_ember-handlebars_lib_string.js&src=true

于 2012-08-24T13:25:34.083 回答
0

您使用的模板语言需要一个 HTML 字符串,而不是 HTML 元素对象。

您可以使用以下命令将 HTML 元素对象转换为 HTML 字符串:

 var container = document.createElement('div');
 container.appendChild(desired_element);
 return container.innerHTML;
于 2012-08-24T13:21:29.553 回答