Ember-Rails和命名空间模板

oot*_*vak 9 ember.js ember-rails

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

我试图使用ember-rails gem来做到这一点.

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

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

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

谢谢!

Mik*_*tti 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);
    }
  })
});
Run Code Online (Sandbox Code Playgroud)