组件层次结构和模板文件分组

时间:2015-03-24 21:18:53

标签: ember.js ember-cli

我将代码重构为组件,我发现组件层次结构运行良好。我遇到的唯一问题是模板命名要求。 我希望能够在组件目录中拥有多个模板,我可以动态查找。下面是一个如何工作的例子,而不是:

side-bar/
|__component.js
|__template.hbs
|__sidebar-links/
    |_component.js
    |_template.hbs
|_sidebar-drawer/
  |_component.js
  |_template-one.hbs
  |_template-two.hbs
  |_...

所以 - 作为简化,我的侧边栏抽屉组件可以使用许多模板(作为部分,或者有时动态设置layout属性的子视图),根据链接交换它们。我非常希望将它们组合在一起。相反,为了做这样的事情,我强迫他们将它们保存在/app/templates目录中,或者将它们视为组件。

我想我可以通过修改模板编译器(找到[here])来实现这个目的:

app._podTemplatePatterns = function() {
  return this.registry.extensionsForType('template').map(function(extension) {
    return new RegExp(extension + '$');
  });
};

这会编译所有具有hbs扩展名的模板,无论位于何处。但是我无法查找它们 - 大概我也需要对解析器进行子类化。我可以开始沿着这条路走下去,但有几个问题:

  1. 我是否应该犹豫是否使用上述(看似)隐私方法_podTemplatePatterns
  2. 修改解析器以适应这种情况(例如性能影响?)
  3. 是不是一个坏主意
  4. 任何其他原因可能会在余烬中沮丧吗?

0 个答案:

没有答案