Я хочу реализовать систему, которая покажет мне новейшие сообщения. Для этого я не хочу использовать действие индекса от пользователя, поскольку это уже сделано для другой функции post, но является «новейшим» действием. Он отображается на указательном маршруте с вызовом {{ render "postNewest" }}
. Я бы предпочел загружать данные в PostNewestController или PostNewestView вместо маршрута для абстракции. Я попробовал две идеи, чтобы добиться этого, но никто не работал до сих пор:Загрузить данные с контроллера в ember.js
создания пользовательского адаптера и добавить метод
findNewest()
: методfindNewest()
, к сожалению, не нашли при попытке вызова в методе инициализации контроллера ,написать запрос непосредственно в метод init, а затем обновить с помощью
store.loadMany(payload)
: данные являются успешными. Однако я не знаю, как получить доступ к данным из шаблона и установить содержимое контроллера.
Есть ли способ для этого?
EDIT:
Вот исходный код, чтобы лучше понять проблему:
PostModel.js
App.Post.reopenClass({
stream: function(items) {
var result = Ember.ArrayProxy.create({ content: [] });
var items = [];
$.getJSON("/api/v1/post/stream?auth_token=" + App.Auth.get("authToken"), function(payload) {
result.set('content', payload.posts);
});
return result;
}
});
PostStreamController.js
App.PostStreamController = Ember.ArrayController.extend({
init: function() {
this.set("content", App.Post.stream());
},
});
index.hbs
{{# if App.Auth.signedIn}}
{{ render "dashboard" }}
{{else}}
{{ render "GuestHeader" }}
{{/if}}
{{ render "postStream" }}
postStream.hbs
{{#each post in model}}
<li>{{#linkTo 'post.show' post data-toggle="tooltip"}}{{post.name}}{{/linkTo}}</li>
{{else}}
Nothing's there!
{{/each}}
PostShowRoute.js
App.PostShowRoute = Ember.Route.extend({
model: function(params) {
return App.Post.find(params.post_id);
},
setupController: function(controller, model) {
controller.set('content', model);
},
});
Прежде всего, спасибо за ваш ответ.Мне удалось обойти проблему, например, представленную там [link] (http://stackoverflow.com/questions/15388825/doing-a-search-loading-custom-results-into-ember-store). Проблема, с которой я столкнулся сейчас, заключается в том, что при нажатии на сообщение модель не работает. Я думаю, проблема в том, что я возвращаю массив вместо модели. – crazyphysicist
Что вы хотите сделать, когда нажмете сообщение? –
Просто покажите это, как при загрузке PostShowRoute вручную по URL-адресу. Я использую '{{#linkTo" post.show "post}}'. URL-адрес генерируется правильно, но после щелчка на странице остается пустой. – crazyphysicist