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を安全な文字列に変換するため、返された文字をエスケープ解除する方法があったと確信しています。脱出のようなもの?

4

2 に答える 2

2

残り火で最も簡単なのは、{{bindAttr}}ヘルパーを使用することだと思います。テンプレートで、次のようなものを試してください。

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

そしてあなたのアバタープロパティはこのようになります:

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

ここに説明する小さなjsfiddleがあります:http://jsfiddle.net/Sly7/dWr8T/

今あなたの質問に答えるために、あなたは安全なhtml文字列を返すヘルパーを持っています。これは'yourstring' .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 に答える