В Ember.js, если у вас есть модель, которая имеет отношения «один ко многим», возможно ли генерировать ссылки на основе свойства родительской модели?Ember.js: как использовать свойство родительской модели в URL-адресе?
К примеру, у меня есть модель и некоторые данные, как это:
var SuggestionGroup = Ember.Model.extend({
id: Ember.attr('number'),
name: Ember.attr('string'),
suggestions: Ember.hasMany('App.Suggestion', {
key: 'suggestions',
embedded: true
})
});
SuggestionGroup.adapter = Ember.FixtureAdapter.create();
SuggestionGroup.FIXTURES = [
{
id: 1,
name: 'Start',
suggestions: [
{
id: 1,
title: 'Fetching coffee and cake for the Interface Developers',
description: 'Because they\'re so brilliant',
upVotes: 10,
downVotes: 2
},
{
id: 2,
title: 'Criticising the app devs more',
description: 'They enjoy a bit of banter',
upVotes: 8,
downVotes: 4
},
{
id: 3,
title: 'Not updating JIRA',
description: 'It\'ll be funny when the PMs start raging',
upVotes: 1000000,
downVotes: 0
}
]
}]
А вот мои маршруты:
App.Router.map(function() {
this.resource('current-suggestions');
this.resource('suggestion', {
path: '/current-suggestions/:suggestion_id'
});
});
Мой шаблон выглядит так:
{{#each model}}
<td>
<ul>
{{#each suggestions}}
<li class="suggestion">
<h3>
{{#linkTo 'suggestion' this}}{{title}}{{/linkTo}}
</h3>
</li>
{{/each}}
</ul>
</td>
{{/each}}
Итак, на данный момент моими путями являются current-suggestions/1
. Но то, что я хотел бы сделать, это такие пути, как current-suggestions/Start/1
. Таким образом, путь генерируется с использованием свойства родительской модели.
Можно ли сделать что-то подобное?
Почему бы не поместить отношения 'ownTo' в child? Затем вы можете получить ссылку на родителя с помощью get(), а затем получить любые свойства, которые вы хотите. – GJK
@GJK Это не доступ к свойствам родителя, с которыми у меня возникают проблемы. Я хочу использовать свойство 'name' для родителя, чтобы создать путь для каждого« Предложения ». Поэтому, если у родителя 'Предложения 'есть' имя'' Старта ', тогда путь будет 'current-ideas/Start/1' или если это' Stop ', то' current-ideas/Stop/1'. –
Ах, я вижу. Я предполагаю, что способ сделать это будет использовать динамический сегмент, но я недостаточно хорош для Ember.js, но не знаю, как это сделать. – GJK