Как получить данные обратно из контроллера emberjs
У меня есть список маршрутов
App.Router.map ()->
@resource 'about'
@resource 'users', ->
@resource 'repositories', path: '/:user_name/repositories'
@route 'show', path: '/:user_name'
В моем шаблоне показа пользователей у меня также есть представление
{{#view App.RepositoriesView login=login}}
<div class="show_repos_control">
<span>Show Repos</span>
</div>
{{#if reposWasQuery}}
{{#each repositories}}
{{repo_name}}
{{/each}}
{{/if}}
{{/view}}
с видом на класс
App.RepositoriesView = Ember.View.extend({
click: function(evt) {
this.get('controller').send('showRepos', this.get('login'));
}
});
просмотреть процесс кода класса в UsersShowController с кодом
App.UsersShowController = Ember.ObjectController.extend({
reposWasQuery: false,
actions:{
showRepos: function(userName){
this.set('reposWasQuery', true);
this.set('repositories', jQuery.getJSON('/users/' + userName + '/repositories'));
}
}
})
Данные репозитория присваиваются как ожидаемые, но, на мой взгляд, я не могу отрицать это. Получение ошибки "#error some number"
1 ответ
Решение
Это очень странно сделать view
для контроллера и маршрута с открытым блоком закрытия.
с помощью {{render 'repositories' myRepositoriesArray}}
вместо этого сделаем следующее:
- Сделать новый
Repositories
контроллер сmyRepositoriesArray
как ваши данные. - Неявно создать
RepositoriesView
,
Вам нужно будет поставить этот код:
<div class="show_repos_control">
<span>Show Repos</span>
</div>
{{#if reposWasQuery}}
{{#each repositories}}
{{repo_name}}
{{/each}}
{{/if}}
в repositories
шаблон.
Ember построен с учетом соглашения о конфигурации. Вы должны прочитать на render
помощник и вещи, которые ember ожидает или создает для вас при рендеринге маршрута.