2

私は小さなエンバーセットに製品をロードして表示しています。製品ページからストアにリンクしたいのですが、製品にストアがあることを ember に伝える必要がある場所がわかりません。

window.App = Ember.Application.create()

App.Router.map ->
  @route 'products'
  @route 'product', path: '/product/:product_id'
  @route 'store', path: '/store/:store_id'

App.ProductsRoute = Ember.Route.extend

  setupController: (controller)->
    $.get('api', (response) ->
      products = response.response.products //this object holds the store
        .filter((p)->  p.gender == 'male')
        .map ((p)-> App.Product.create(p))

      controller.set('content', products)
    )
    controller.set 'name', 'Produkte'


App.Product = Ember.Object.extend
  style: (->
    "background-image:url('" + @get("image") + "')"
  ).property("url")

テンプレート

script(type="text/x-handlebars", data-template-name="product")
    <h1>{{page_title}}</h1>
    <img {{bindAttr src="image"}}>
    {{#linkTo "store" store}}Store{{/linkTo}}

製品のjson

[
  {
    id: 1
    name: 'product1',
    gender: 'male'
    store: {id: 1, name: 'store1'}
  }
]
4

2 に答える 2

0

わかりました、これは残り火の WTF の瞬間の 1 つです。store変数はある種の予約語のようです。キーを設定する_storeと、期待どおりに機能します。

window.App = Ember.Application.create()

App.Router.map ->
  @route 'products'
  @route 'product', path: '/product/:product_id'
  @route 'store', path: '/store/:store_id'

App.ProductsRoute = Ember.Route.extend

  setupController: (controller)->
    $.get('api', (response) ->
      products = response.response.products
        .filter((p)->  p.gender == 'male')
        .map ((p)->
          p._store = p.store
          App.Product.create(p))

      controller.set('content', products)
    )
    controller.set 'name', 'Produkte'

App.ProductRoute = Ember.Route.extend
  setupController: (controller, model)->
    console.log(model);

App.Product = Ember.Object.extend
  style: (->
    "background-image:url('" + @get("image") + "')"
  ).property("url")
于 2013-07-11T14:28:49.527 に答える