3

次のオブジェクトがあるとします。

image: {
  size: {
    l: {
      url: 'l.jpg',
    },
    m: {
      url: 'm.jpg',
    },
    s; {
      url: 's.jpg',
    }
  }
},
mySize: 'm'

テンプレートで対応する画像の URL を取得したい場合、どうすればよいですか? 私は試した:

{{get image mySize 'url'}}

しかし、それは機能しません。

次のように入力して、必要な URL を取得できます。

{{get (get image mySize) 'url')}}

ただし、これは非常に非直感的で醜い回避策です。もっと良い方法はありますか?ありがとうございました。

4

1 に答える 1

3

それと一緒に concat ヘルパーを使用する必要があります。

{{get image (concat 'size.' mySize '.url')}}

しかし、これは計算されたプロパティの仕事のように聞こえます:

imageUrl: Ember.computed('mySize', 'image.size', function() {
  let { image, mySize } = this.getProperties('image', 'mySize');
  return Ember.get(image, `size.${mySize}.url`);
})

そうすれば{{imageUrl}}、テンプレートで使用できます。

エンバーいじり

于 2016-08-24T07:28:31.000 に答える