Как получить данные обратно из контроллера 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}} вместо этого сделаем следующее:

  1. Сделать новый Repositories контроллер с myRepositoriesArray как ваши данные.
  2. Неявно создать RepositoriesView,

Вам нужно будет поставить этот код:

  <div class="show_repos_control">
      <span>Show Repos</span>
  </div>

  {{#if reposWasQuery}}
    {{#each repositories}}
      {{repo_name}}
    {{/each}}
  {{/if}}   

в repositories шаблон.

Ember построен с учетом соглашения о конфигурации. Вы должны прочитать на render помощник и вещи, которые ember ожидает или создает для вас при рендеринге маршрута.

Другие вопросы по тегам