9

我有一个 Rails 应用程序,它被命名为三个部分(几乎 3 个共享模型的应用程序)。我希望每个命名空间部分都有自己的 Ember 应用程序。这些应用程序永远不会以相同的布局加载,因此不必了解彼此的任何信息。事实上,当应用程序最终可以真正拆分时,我希望尽可能地保持代码分离。

我正在尝试使用 ember-rails gem 来做到这一点。

基本上就像这个问题: 如何使用 ember-rails gem 为我的 HandlebarsJS 模板指定替代目录?

那里的答案有效,但我很确定使用 templates_root 将我限制在一个命名空间中。所以我不能同时拥有 admin.js 和 admin/templates 命名空间以及 customer.js 和 customer/templates 命名空间。

那么有谁知道 ember-rails 是否会支持多个命名空间的 Ember 应用程序并因此呈现多个模板根?

谢谢!

4

1 回答 1

12

正如此处发布的那样,您可以通过向每个应用程序添加自定义解析器来拥有命名空间模板。

App1 = Ember.Application.create({
  Resolver: Ember.DefaultResolver.extend({
    resolveTemplate: function(parsedName) {
      parsedName.fullNameWithoutType = "app1/" + parsedName.fullNameWithoutType;
      return this._super(parsedName);
    }
  })
});

App2 = Ember.Application.create({
  Resolver: Ember.DefaultResolver.extend({
    resolveTemplate: function(parsedName) {
      parsedName.fullNameWithoutType = "app2/" + parsedName.fullNameWithoutType;
      return this._super(parsedName);
    }
  })
});

App3 = Ember.Application.create({
  Resolver: Ember.DefaultResolver.extend({
    resolveTemplate: function(parsedName) {
      parsedName.fullNameWithoutType = "app3/" + parsedName.fullNameWithoutType;
      return this._super(parsedName);
    }
  })
});
于 2013-08-14T06:19:35.470 回答