使用addon(in-repo)中的模板覆盖ember组件模板

时间:2017-05-07 13:52:08

标签: javascript ember.js ember-cli

我想创建一个in-repo插件,以封装的方式对现有的ember应用程序进行某些修改(样式,模板等),但是我在覆盖模板方面遇到了麻烦。

现在,我尝试使用in-repo插件中具有相同名称的组件中的模板覆盖现有组件模板。我的代码看起来像这样:



// my-app/app/templates/components/foo.hbs
<h1>Some headline<h1>

// my-app/app/lib/my-addon/app/templates/components/foo.hbs
<h1>A different headline<h1> // -> this never shows up
&#13;
&#13;
&#13;

我尝试过很多切换模板结构(比如将它放在/addons/app中并以不同的方式链接到模板,但没有成功。我的问题是ember从不使用插件中的模板。

如果插件中的组件有不同的名称,例如foobar.hbs,我可以毫无问题地调用它。

我目前正在查看源代码和文档,试图理解这一点。这甚至可以按照我的想象完成吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您必须在您的余烬应用中创建该组件,该组件最初将意味着该组件呈现为什么,因为它是一个全新的空组件。然后,您需要深入了解node_modules,找到组件文件和模板,然后复制您需要使用的内容。

这是一个例子。在使用ember-cli-jsonapi-pagination时,我需要自定义paginate-collection组件:

  1. 我在我的应用程序中创建了组件。
  2. 我查看了来源:https://github.com/BookingSync/ember-cli-jsonapi-pagination/tree/master/app
  3. components/paginate-collection/component.js我复制了组件代码,但您也应该可以将其导入。
  4. components/paginate-collection/template.hbs我根据需要修改了模板。