2013-07-23 2 views
0

Я использую emberData и у меня есть следующая модельСсылка на вложенный объект emberData в emberJS

App.Product = DS.Model.extend({ 
    page_title: DS.attr('string'), 
    image: DS.attr('string'), 
    shop: DS.belongsTo('App.Shop', {embedded: true}), 
    style: (function() { 
    return "background-image:url('" + this.get("image") + "')"; 
    }) 
}); 

данные JSON выглядит следующим образом:

{ 
    id: 1, 
    image: 'imageUrl', 
    shop: { 
    id: 2, 
    name: 'shopName' 
    } 
} 

В моем шаблоне я хочу связать на странице для отображения в магазин,

<img {{bindAttr src="image"}}> 
{{#linkTo "shop" shop}}Store{{/linkTo}} 

к сожалению, ссылки на http://localhost:3000/#/shop/undefined

ответ

1

Не имеет смысла вставлять эту модель в belongsTo. Состояния изменения переломные документов, которые вы встраивать объекты в родительском объекте:

От BREAKING_CHANGES.md

Встроенные в Родитель

Адаптер может сохранить один-ко-многим, встраивая идентификаторы (или записи) в родительском объекте. В этом случае отношение не равно считается признанным, пока оба родителя и нового родителя не имеют , которые подтвердили изменение.

В этом случае адаптер должен отслеживать старый родительский элемент и новый родитель и подтвердить изменение отношения после того, как оба имеют . Если одна из двух сторон не существует (например, новый родитель не существует из-за обнуления отношения принадлежности к ), адаптер должен подтвердить связь после , с другой стороны.

Ваш прибор должен быть:

App.Product.FIXTURES = [{ 
    id: 1, 
    image: "imageUrl", 
    shop_id: 2 
}]; 
+0

Mhmm, это ничего не меняет, все еще есть '#/магазин/undefined' –

+0

Хорошо, он должен' shop_id' вместо просто 'shop' в качестве ключа для Я бы. Не могли бы вы обновить свой ответ, чтобы я мог его принять. –

+0

Извините. Ответ обновлен. – veidt

Смежные вопросы