0

我有一个路线列表

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”

4

1 回答 1

1

view为控制器渲染 a 并使用打开的关闭块进行路由是非常奇怪的。

使用{{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 期望或为您创建的内容。

于 2014-07-25T09:44:32.153 回答