Trying to use custom element, “You tried to use polymer without loading it first”, it's definitely imported

痞子三分冷 提交于 2019-12-11 11:44:50

问题


I've been trying to use a custom element for a paper-dialog popup that I want to use. If I set up a test page within the file the custom element is defined in, using all the same imports as my index, it works. If I import the custom element into any other page, it no longer works. Even if I load the test file that does work into a div on another page, it gives me the error Uncaught Error: You tried to use polymer without loading it first. To load polymer, <link rel="import" href="components/polymer/polymer.html">

I definitely have the polymer.html import in my custom element file. Even if I take the custom element and define it in my index, exactly the same code from the external test, it returns this error. I don't understand why and I've searched extensively. Does anyone know why?

Here's the code for my custom element:

    <polymer-element name="share-dialog" attributes="pageid, post">
<template>
    <paper-dialog backdrop autoCloseDisabled id="overlay" transition="paper-dialog-transition-bottom" heading="Share">
        Long-press, highlight and copy: <br>
        <center><paper-input id='share_box'type='text' name='share' value='xxxxx/index.php?page=news&id={{pageid}}&post={{post}}'></paper-input></center><br>
        <center>
            <paper-button core-overlay-toggle raised>Close</paper-button>
        </center>
    </paper-dialog>
</template>
<script>

Polymer('share-dialog', {
    toggle: function() {
        this.$.overlay.toggle();
    }
});

</script>
</polymer-element>

Obviously I use an actual url in that input box, just for the sake of privacy I've edited that out.

These are my imports:

    <script src="bower_components/webcomponentsjs/webcomponents.js"></script>
<link rel="import" href="bower_components/polymer/polymer.js">

<link rel="import" href="bower_components/polymer/polymer.html">
<link rel="import" href="bower_components/core-icons/core-icons.html">
<link rel="import" href="bower_components/core-icons/social-icons.html">
<link rel="import" href="bower_components/paper-spinner/paper-spinner.html">
<link rel="import" href="bower_components/core-toolbar/core-toolbar.html">
<link rel="import" href="bower_components/core-animated-pages/core-animated-pages.html">
<link rel="import" href="bower_components/core-animated-pages/transitions/slide-from-right.html">
<link rel="import" href="bower_components/core-menu/core-menu.html">
<link rel="import" href="bower_components/core-drawer-panel/core-drawer-panel.html">
<link rel="import" href="bower_components/core-header-panel/core-header-panel.html">
<link rel="import" href="bower_components/core-item/core-item.html">
<link rel="import" href="bower_components/core-style/core-style.html">
<link rel="import" href="bower_components/font-roboto/roboto.html">
<link rel="import" href="bower_components/paper-button/paper-button.html">
<link rel="import" href="bower_components/paper-checkbox/paper-checkbox.html">
<link rel="import" href="bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="bower_components/paper-fab/paper-fab.html">
<link rel="import" href="bower_components/paper-tabs/paper-tabs.html">
<link rel="import" href="bower_components/paper-toast/paper-toast.html">
<link rel="import" href="bower_components/paper-progress/paper-progress.html">
<link rel="import" href="bower_components/core-transition/core-transition.html">
<link rel="import" href="bower_components/paper-dialog/paper-dialog.html">
<link rel="import" href="bower_components/paper-dialog/paper-dialog-transition.html">
<link rel="import" href="bower_components/paper-dialog/paper-dialog-base.html">
<link rel="import" href="bower_components/paper-elements/paper-elements.html">
<link rel="import" href="bower_components/core-overlay/core-overlay.html">

No error is thrown until I try to call <share-dialog></share dialog>


回答1:


You're including polymer.js and polymer.html. You should only include polymer.html.




回答2:


Sounds strange. When I made a plunker using your above example it works -

http://plnkr.co/edit/Gd84hbHTct9ht94acC1N?p=preview

The only reference I had to include that isn't in your code above was in the index.html page

I also removed a reference to polymer.js which isn't needed here

index.html

<!DOCTYPE html>
<html>

<head>
  <script src="https://www.polymer-project.org/components/webcomponentsjs/webcomponents.js"></script>
  <link rel="import" href="share-dialog.html">
</head>

<body>

  <share-dialog id="myDialog"></share-dialog>
  <button onclick="showDialog()">Show</button>

  <script>
    function showDialog() {
      document.getElementById("myDialog").toggle();
    }
  </script>

</body>

</html>

share-dialog.html

<link rel="import" href="https://www.polymer-project.org/components/polymer/polymer.html">
<link rel="import" href="https://www.polymer-project.org/components/core-icons/core-icons.html">
<link rel="import" href="https://www.polymer-project.org/components/core-icons/social-icons.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-spinner/paper-spinner.html">
<link rel="import" href="https://www.polymer-project.org/components/core-toolbar/core-toolbar.html">
<link rel="import" href="https://www.polymer-project.org/components/core-animated-pages/core-animated-pages.html">
<link rel="import" href="https://www.polymer-project.org/components/core-animated-pages/transitions/slide-from-right.html">
<link rel="import" href="https://www.polymer-project.org/components/core-menu/core-menu.html">
<link rel="import" href="https://www.polymer-project.org/components/core-drawer-panel/core-drawer-panel.html">
<link rel="import" href="https://www.polymer-project.org/components/core-header-panel/core-header-panel.html">
<link rel="import" href="https://www.polymer-project.org/components/core-item/core-item.html">
<link rel="import" href="https://www.polymer-project.org/components/core-style/core-style.html">
<link rel="import" href="https://www.polymer-project.org/components/font-roboto/roboto.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-button/paper-button.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-checkbox/paper-checkbox.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-fab/paper-fab.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-tabs/paper-tabs.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-toast/paper-toast.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-progress/paper-progress.html">
<link rel="import" href="https://www.polymer-project.org/components/core-transition/core-transition.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-dialog/paper-dialog.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-dialog/paper-dialog-transition.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-dialog/paper-dialog-base.html">
<link rel="import" href="https://www.polymer-project.org/components/paper-elements/paper-elements.html">
<link rel="import" href="https://www.polymer-project.org/components/core-overlay/core-overlay.html">

<polymer-element name="share-dialog" attributes="pageid, post">
  <template>
    <paper-dialog backdrop autoCloseDisabled id="overlay" transition="paper-dialog-transition-bottom" heading="Share">
      Long-press, highlight and copy:
      <br>
      <center>
        <paper-input id='share_box' type='text' name='share' value='xxxxx/index.php?page=news&id={{pageid}}&post={{post}}'></paper-input>
      </center>
      <br>
      <center>
        <paper-button core-overlay-toggle raised>Close</paper-button>
      </center>
    </paper-dialog>
  </template>
  <script>
    Polymer('share-dialog', {
      toggle: function() {
        this.$.overlay.toggle();
      }
    });
  </script>
</polymer-element>


来源:https://stackoverflow.com/questions/27890439/trying-to-use-custom-element-you-tried-to-use-polymer-without-loading-it-first

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!