Это может быть скорее вопрос структуры, но заголовок - это моя текущая проблема.EmberJS: Доступ к функциям дочернего контроллера у родителя
У меня есть следующие основные приложения:
var App = Ember.Application.create();
App.ApplicationAdapter = DS.FixtureAdapter.extend();
App.Router.map(function() {
this.resource('numbers', {
path: '/'
});
this.resource('users');
});
App.UsersRoute = Ember.Route.extend({
model: function (params) {
return this.store.findAll('user');
}
});
App.NumbersRoute = Ember.Route.extend({
model: function (params) {
return this.store.findAll('number');
}
});
App.User = DS.Model.extend({
name: DS.attr('string'),
numbers: DS.hasMany('number', {
async: true
})
});
App.Number = DS.Model.extend({
value: DS.attr('number'),
user: DS.belongsTo('user')
});
App.NumbersController = Ember.ArrayController.extend({
total: function() {
var total = 0;
this.forEach(function (number) {
total += parseFloat(number.get('value'));
});
return total;
}.property()
});
App.User.FIXTURES = [{
id: 1,
name: 'Bob',
numbers: [100, 101]
}, {
id: 2,
name: 'Fred',
numbers: [102]
}];
App.Number.FIXTURES = [{
id: 100,
value: 25,
user: 1
}, {
id: 101,
value: 15,
user: 1
}, {
id: 102,
value: 60,
user: 2
}];
Рабочий пример с шаблонами здесь: http://jsfiddle.net/sweetrollAU/9DuR3/
Пример показывает связь между пользователями и числами. Первая страница - это список всех номеров в приложении, их связанный пользователь и общее количество всех номеров. Ссылка «Пользователи» показывает один и тот же контент, но каждый пользователь должен показать свою промежуточную оценку для номеров, которые у нее есть.
Мой вопрос в основном, как я могу получить доступ к методу NumbersController 'total' в моем UserController? Должен ли я получить доступ к этому методу или у меня неправильная структура?
Благодаря
Спасибо за ваши ответы. Оба ответа были более чем достаточными, но выбрали второе для этого варианта использования. – sweetroll