Компонент не отображается в Интернете - PullRequest
1 голос
/ 25 июня 2019

Я добавляю новую веб-страницу в свое приложение, используя Polymer2.Я уже делал подобные добавления ранее, но этот действительно не отображается на странице, даже если у меня есть импорт и готовые компоненты ... У меня начинаются некоторые головные боли при просмотре моего кода, пытаясь найти, что не так, так что, возможно,некоторые из вас сразу обнаружат ошибку.

Как я уже говорил, я уже реализовал другие страницы в приложении, используя «Возможно», проблема связана с «ленивым импортом» моего нового компонента, но он работал нормально длядругие ранее добавленные компоненты.

Я пытался найти DOM с ошибками или компоненты, но все выглядит хорошо

Это меню, из которого я перехожу на другие страницы

<!-- i import the components like that -->
<link rel="lazy-import" href="c2m-connexion.html">
<link rel="lazy-import" href="c2m-newPage.html">

<app-drawer-layout id="drawerLayout" force-narrow>
        <app-drawer id="drawer" slot="drawer" swipe-open="[[narrow]]">
          <app-toolbar>Menu</app-toolbar>
          <iron-selector selected="[[page]]" attr-for-selected="name" class="drawer-list" role="navigation">
            <div id="anonyme">
              <a name="connexion" href="[[rootPath]]connexion">Connexion</a>
              <a name="newPage" href="[[rootPath]]newPage">New Page !!</a>
            </div>

<!--[... Some other pages in the menu ...]-->

 <div id="top ">
      <iron-pages selected="[[page]]" attr-for-selected="name" fallback-selection="view404 " role="main ">
        <c2m-connexion name="connexion"></c2m-connexion>
        <c2m-newPage name="newPage" subroute="{{subroute}}"></c2m-newPage>
        <!-- other pages implemented the same way-->
      </iron-pages>
 </div>

Я использую этот скрипт, потому что все мои файлы имеют нормализованное имя:

  // Load page import on demand. Show 404 page if fails
        let resolvedPageUrl = this.resolveUrl('c2m-' + page + '.html');
        Polymer.importHref(
          resolvedPageUrl,
          null,
          this._showPage404.bind(this),
          true);
      }

Теперь сам компонент (c2m-newPage):

<link rel="import" href="../bower_components/polymer/polymer-element.html">
<link rel="import" href="../bower_components/paper-input/paper-input.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-card/paper-card.html">
<link rel="import" href="../bower_components/iron-ajax/iron-ajax.html">
<link rel="import" href="../bower_components/paper-dialog/paper-dialog.html">
<link rel="import" href="../bower_components/neon-animation/web-animations.html">
<link rel="import" href="../bower_components/neon-animation/neon-animated-pages.html">
<link rel="import" href="../bower_components/neon-animation/neon-animations.html">
<link rel="import" href="./components/sweet-alert.html">
<link rel="import" href="shared-styles.html">
<link rel="import" href="./services/c2m-service.html">
<link rel="import" href="components/c2m-menu-newPage.html">



<dom-module id="c2m-newPage">
    <!-- Defines the element's style and local DOM -->
    <template>
        <link rel="stylesheet" href="../style/main.css">
        <link rel="stylesheet" href="../style/util.css">
        <style is="custom-style" include="shared-styles">
            :host {
                display: flex;
                padding: 9px;
            }
            paper-input#email-input {
                width: 50%;
            }
            .card-content paper-dropdown-menu {
                width: 100%;
            }

        </style>

        <!-- I TRIED PUTTING SOME TEXT HERE ASWELL TO SEE IF THE COMPONENT WAS LOADING BUT NOTHING APPEARED -->

        <c2m-menu-newPage></c2m-menu-newPage>
        <!-- Services -->
        <c2m-service id="service"></c2m-service>
    </template>
    <script>
        class C2mNewPage extends Polymer.Element {
            /**
             * @inheritdoc
             **/
            connectedCallback() {
                super.connectedCallback();
            }
            static get is() {
                return 'c2m-newPage';
            }
        }
        customElements.define(C2mNewPage.is, C2mNewPage);
    </script>
</dom-module>

Я ожидаю, что на странице будет что-то показывать, в этот момент текст, который я пытался вставить, даже не показывался, и я думаю, что если я добавлю

какой-то текст

, он должен появиться на странице.Так что я не знаю, откуда это.

Спасибо за ответы!

1 Ответ

1 голос
/ 25 июня 2019

Переименование элемента в c2m-new-page, вероятно, решит вашу проблему.

Полимер не подходит для заглавных букв, так как ваш элемент имеет имя 'c2m-newPage', его, вероятно, невозможно найти, когдаиспользуется в dom, так как он ищет элемент строчными буквами или заглавные буквы заменяются на строчные.

...