2

我正在使用 ember-rails 来处理把手编译,并且 rails 应用程序将有多个 Ember 应用程序(取决于用户所在的页面)。为了更好地处理文件管理,我想在每个应用程序的不同文件夹下组织模板。但是,我不想为了指定模板名称而为每个模板创建单独的视图。是否有一种为每个应用程序覆盖 Ember.View 的好方法,以便它始终在特定命名空间下查找模板?

4

1 回答 1

2

您可以覆盖模板解析器来完成此操作。基本思想是确保像 ember-rails 这样的构建系统编译模板中的表单,

Ember.TEMPLATES['namespace/foo/bar'] = ...

然后,您可以覆盖模板解析器以将该命名空间作为模板名称的前缀。

App = Ember.Application.create({
  templateNamespace: 'initech',

  resolver: Ember.DefaultResolver.extend({
    resolveTemplate: function(parsedName) {
      parsedName.fullNameWithoutType = App.templateNamespace + '/' + parsedName.fullNameWithoutType;
      parsedName.name = App.templateNamespace + '/' + parsedName.name;

      return this._super(parsedName);
    }
  })

});

这是一个jsbin示例。模板嵌入在示例中,但在您的情况下将来自initech目录。

于 2013-07-04T06:11:25.813 回答