У меня есть два контроллера: postsController и postController. почтовый маршрут НЕ вложен под сообщениями (я не хочу этого делать, потому что я хочу, чтобы просмотр заметок был замещен видом сообщения, а не добавлен к нему.)Содержимое контроллера массива Ember доступа от другого контроллера
Это то, что мой маршрутизатор выглядит.
this.resource('posts', {path: '/'}, function(){
// this.route('index', {path: '/'});
});
this.resource('post', { path: 'posts/:id' }, function(){
this.route('show');
}
Теперь PostsController:
App.PostsRoute = Ember.Route.extend({
model: function(){
return this.store.find('post');
},
})
App.PostsController = Ember.ArrayController.extend({
testProperty: "This is a test"
})
И PostController:
App.PostRoute = Ember.Route.extend({
model: function(params){
return this.store.find('post', params.id);
},
})
App.PostController = Ember.ObjectController.extend({
needs: ['posts'],
percentValue: 100,
progressBarWidth: null,
advancePost: function(delta) {
var that = this;
var posts = that.get('controllers.posts');
// debugger <-- This is where all my questions are concerned with.
...
},
actions: {
nextPost: function() {
this.advancePost(1);
},
previousPost: function() {
this.advancePost(-1);
},
}
})
Зв PostController 'needs' PostsController и на action advancePost должен получить доступ к модели PostsController (которая должна содержать массив Post Objects). В момент, когда мой отладчик, переменные сообщения имеют доступ к postsController. В этот момент, если я запустил
posts.get('testProperty') // => gives "This is a test", which is correct.
на хром-консоли, я получаю «Это тест». Поэтому я знаю, что получил доступ к самому контроллеру сообщений. Однако любая из следующих попыток:
posts.get('model') // gives []??
posts.get('content') // gives []??
возвращает пустой массив ([]).
Я не понимаю, почему. Если у меня есть доступ к массиву MessageController, почему у меня нет доступа к его данным? Следовательно, как мне получить доступ к его данным?
Я очень благодарен за это.
Кажется, мне тоже не нужно отправлять почту под посты. Однако пост настаивает на рендеринге в качестве части шаблона сообщений; Мне нужно заменить шаблон сообщений.На каждом посту есть кнопка, чтобы вернуться к списку. Подумайте, imgur или 9gag, или любой из сайтов обмена изображениями. Я чувствую, что это определенно лучший подход - и я хотел бы облегчить его, - но сэкономить на добавлении «скрытого» класса на каждом переходе, я ничего не могу придумать. В какой-то мере я ожидаю, что Ember будет иметь возможность заменить текущее представление на выходе с вложенным представлением; любая идея, как это можно сделать? – Darshan
Сделайте ваши сообщения в 'posts/index' и детали в' posts/post'. Таким образом, они «логически» будут вложены, но останутся братьями и сестрами друг другу в шаблонах –