【问题标题】:Custom element not found未找到自定义元素
【发布时间】:2015-03-19 03:44:55
【问题描述】:

我正在尝试创建一个自定义元素,我在结果页面中有几个警告,我已修复。最后一个是:
custom element with name "paper-fab-menu" not found. See http://goo.gl/5HPeuP#polymer_11 for details.

我检查了元素的代码,删除了所有脚本以使事情变得简单,这是代码

<link rel="import" href="../../../packages/polymer/polymer.html">
<link rel="import" href="../../../packages/paper_elements/paper_fab.html">

<polymer_element name="paper-fab-menu" noscript>

  <template>
    <paper-fab icon='menu'></paper-fab>
  </template>

  <!--<script type="application/dart" src="paper_fab_menu.dart"></script>-->

</polymer_element>

没有关于此代码的警告。

当我导入我的元素时,我的 index.html 代码中没有警告(有一个关于不正确的路径,但已解决),这是我的 index.html 的导入部分:

<link rel="import" href="packages/core_elements/core_scaffold.html">
<link rel="import" href="packages/core_elements/core_item.html">
<link rel="import" href="packages/core_elements/core_icon.html">
<link rel="import" href="packages/core_elements/core_submenu.html">
<link rel="import" href="packages/paper_elements/paper_input.html">
<link rel="import" href="../lib/custom_paper_elements/paper_fab_menu.html">

<!--<script async type="application/dart" src="index.dart"></script>-->
<script type="application/dart">export 'package:polymer/init.dart';</script>
<script async src="packages/browser/dart.js"></script>

飞镖编辑器仍在将&lt;paper-fab-menu&gt; 标记为警告。 Polymer 的错误指出这个错误指向了一个不正确的导入,但是所有的导入都被正确解决了,我看不到问题!

Windows 8.1 飞镖编辑器 1.8.5 Dart SDK 1.8.5

感谢您的帮助

【问题讨论】:

  • 你检查过它投诉的文件是否真的存在吗?您可以在 c 命令行上尝试pub cache repair
  • 文件存在。我尝试将元素名称重命名为 paperfabmenu (不带破折号),它起作用了。破折号返回 = 问题返回我没有听说聚合物中关于破折号使用的约束名称
  • 约束是,每个 Polymer 元素(或每个自定义元素)的名称中必须有一个破折号,即使在这种情况下看起来很奇怪。

标签: dart polymer custom-element


【解决方案1】:

&lt;polymer_element ... 应该是 &lt;polymer-element ...(破折号而不是下划线)

您不应使用../ 超出顶级目录。仅从lib 或当前顶级目录中导入。 要从 lib 导入,请使用 &lt;link rel="import" href="packages/yourpackagename/custom_paper_elements/paper_fab_menu.html"&gt;

更多详情见: https://www.dartlang.org/polymer/app-directories.html 这看起来有点复杂,但通常你会得到很好的警告,提示导入路径的外观。

【讨论】:

  • 就是这样 :) 谢谢
  • 我添加了另一个可能会给您带来麻烦的提示。
  • 导入是另一个问题。我不是要嵌套目录,但是在包中,库名称不是直接在“packages”文件夹下创建的,而是在“packages//custom_paper_elements”下创建的,这就是为什么我采用那种奇怪的方式来达到paper_elements 包我不得不折叠两次
  • packages/&lt;ProjectName&gt; lib 文件夹。您应该只从lib 导入,这就是只有lib 通过packages 暴露的原因。如果您在web,则不需要.. 即可到达packages(很抱歉造成混淆,我会修正我的答案)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多