1

私は立ち往生していますが、これは非常に簡単に答える必要があります...

  • エンバー 1.0.0
  • ハンドルバー 1.0.0

URL を生成するために、次の (簡略化された) ヘルパーを定義しました。

Ember.Handlebars.helper('imageUrl', function(basename) {
  return 'http://lorempixel.com/400/200/' + basename;
});

テンプレートからこのヘルパーを呼び出す:

<ul>
  {{#each}}
    <li><img src={{imageUrl name}}></li>
  {{/each}}
</ul>

予想される URL を出力する代わりに、スクリプト タグで出力をラップします。

...
<li>
  <img src="<script" id="metamorph-6-start" type="text/x-placeholder">
  http://lorempixel.com/400/200/sport
  <script id="metamorph-6-end" type="text/x-placeholder"></script>&gt;

このプロパティをモデルの一部にしたくないので、各項目をコントローラーで表し、このコントローラーで imageUrl を定義することでこれを解決しました。しかし、これは複雑すぎるように感じます。

<ul>
  {{#each itemController="myItem"}}
    <li><img {{bind-attr src=imageUrl}}></li>
  {{/each}}
</ul>


App.MyItemController = Em.ObjectController.extend({
  imageUrl: function(){
    return 'http://lorempixel.com/400/200/' + this.get('name');
  }.property('name');
});

これを達成するためにヘルパーを使用するにはどうすればよいですか?

4

1 に答える 1