【问题标题】:Ember resource templates in one folder一个文件夹中的 Ember 资源模板
【发布时间】:2015-01-26 13:35:30
【问题描述】:

我的 Ember.js 应用中有这些路由:

router.js

EmberRails.Router.map(function() {
  this.resource('stories', function () {
    this.resource('story', {path: '/:story_id'});
  });
});

这就是我的 Ember Inspector 在 routes 选项卡中输出的内容:

现在,在“模板”列(右起第二个)中,Ember 告诉我它期望模板应该在哪里用于不同的 Story 资源。如您所见,它希望某些模板直接位于/templates 目录中,而某些模板位于/templates/stories 中。我看不出有什么理由,而且我个人觉得这很令人困惑和荒谬。

在 Ember 中有什么方法可以使用 Rails 风格的约定,像这样:

显示('故事') - /templates/stories/show
索引 - /templates/stories/index
编辑 - /templates/stories/edit
等等。

【问题讨论】:

  • 如果你想嵌套内部故事,你需要使用'this.route'。更改 this.resource('story', {path: '/:story_id'}); with this.route('story', {path: '/:story_id'});
  • “处理路由时出错:story.index” “断言失败:您为 指定了模板名称故事,但它不存在。” @blessenm

标签: javascript templates ember.js handlebars.js url-routing


【解决方案1】:

您可以使用 Ember CLI 和 pods feature 来执行此操作。 recommended by the Ember core team 是所有 Ember 应用程序尽快迁移到 Ember CLI。

如果您不使用或不想使用 Ember CLI,您可以覆盖常规的 Ember.DefaultResolver 方法来更改解析器的功能。有一个short example in the Docs

【讨论】:

  • Ember CLI 如何与ember-rails 合作?我一直在玩 Ember CLI 测试应用程序,但我决定首先在它自己的应用程序中测试 ember-rails。例如,如果您同时使用两者,是否会在功能或约定上发生冲突?你会使用ember serverails s 等吗?
  • Rails 和 Ember CLI 可以很好地协同工作。 Rails 不会提供任何资产,它只是充当 API。 Ember CLI 构建应用程序,为资产提供服务,您可以轻松地从 Heroku 或 AWS 等公司部署到 Node 服务器上。为您的前端使用 Node 服务器将允许您利用 Ember Fastboot 之类的功能,因为 Node 功能对于 Ember 堆栈的优势变得更加重要。您有两个应用程序,因此您可以在单独的终端选项卡中使用 rails sember s
猜你喜欢
  • 2015-06-13
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
相关资源
最近更新 更多