如何在另一个HTML文档中使用Polymer Project Designer中的代码

时间:2014-07-21 16:45:33

标签: html github polymer polymer-designer-tool

所以我在Polymer Project Designer中建立了一个小家伙:http://www.polymer-project.org/tools/designer/preview.html#ca22c086297bb41ee6e0

并希望在我本地计算机上的另一个HTML文件中使用它。我完全不知道如何做到这一点,我已经寻找教程视频,并尝试整合通过github(https://gist.githubusercontent.com/Superraptor/ca22c086297bb41ee6e0/raw/8543946b7e21a8fd2f1a8022e155622306fc549f/designer.html)生成的代码,但无济于事。我真的可以使用这个帮助!

非常感谢!

编辑:

这是我的代码:

<!DOCTYPE html>

<html lang="en">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="bower_components/platform/platform.js"></script>
    <link rel="import" href="bower_components/polymer/polymer.html">

<!-- These are the links I added -->
    <link rel="import" href="../paper-tabs/paper-tab.html">
<link rel="import" href="../core-drawer-panel/core-drawer-panel.html">
<link rel="import" href="../core-menu/core-submenu.html">
<link rel="import" href="../core-item/core-item.html">


</head>

<body>


<!-- This is the element I added -->
<polymer-element name="my-element">

  <template>
    <style>    
      :host {
        position: absolute;
        width: 100%;
        height: 100%;
        box-sizing: border-box;
      }
      #core_input {
        padding: 10px;
        display: none;
        background-color: rgb(255, 255, 255);
      }
      #core_drawer_panel {
        right: 0px;
        bottom: 0px;
        width: 100%;
        height: 100%;
      }
      #section1 {
        box-shadow: rgba(0, 0, 0, 0.0980392) 0px 2px 4px, rgba(0, 0, 0, 0.0980392) 0px 0px 3px;
        background-color: rgb(250, 250, 250);
      }
      #section2 {
        height: 100%;
        box-sizing: border-box;
        background-color: rgb(221, 221, 221);
      }
      #core_menu {
        font-size: 16px;
      }
      #core_header_panel {
        width: 100%;
        height: 100%;
        left: 0px;
        top: 0px;
        position: absolute;
      }
      #core_toolbar {
        color: rgb(255, 255, 255);
        background-color: rgb(79, 125, 201);
      }
      #section {
        height: 100%;
        background: linear-gradient(rgb(214, 227, 231), rgb(173, 216, 230));
      }
      #core_header_panel1 {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0px;
        left: 0px;
      }
      #section3 {
        width: 420px;
        height: 630px;
        border: 5px solid rgb(204, 204, 204);
        left: 1150px;
        top: 480px;
      }
      #paper_tabs {
        color: rgb(255, 255, 255);
        box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 2px;
        background-color: rgb(0, 188, 212);
      }
      #paper_fab {
        left: 1170px;
        top: 480px;
      }
      #div1 {
        left: 1210px;
        top: 480px;
      }
      #paper_icon_button {
        left: 1240px;
        top: 490px;
      }
      #core_field {
        left: 1090px;
        top: 510px;
      }
      #core_input1 {
        padding: 10px;
        width: 100px;
        display: none;
        background-color: rgb(255, 255, 255);
      }
      #core_input2 {
        padding: 10px;
        width: 100px;
        display: none;
        background-color: rgb(255, 255, 255);
      }
    </style>
    <core-header-panel mode="standard" id="core_header_panel">
      <core-toolbar id="core_toolbar" wrap>
        <core-icon-button icon="menu" id="core_icon_button"></core-icon-button>
        <div id="div">KATELYN</div>
        <core-icon-button icon="account-circle" id="core_icon_button1" on-tap="{{ showUsernamePasswordFields }}" theme="core-light-theme"></core-icon-button>
        <core-input placeholder="User Name" id="core_input1" hidden="true"></core-input>
        <core-input placeholder="Password" id="core_input2" hidden="true"></core-input>
        <core-icon-button icon="search" id="core_icon_button2" on-tap="{{ showSearchField }}" theme="core-light-theme"></core-icon-button>
        <core-input placeholder="Search" id="core_input" hidden="true"></core-input>
        <paper-tabs selected="0" selectedindex="0" id="paper_tabs" end end-justified four flex>
          <paper-tab id="paper_tab" active>Top</paper-tab>
          <paper-tab id="paper_tab1">New</paper-tab>
          <paper-tab id="paper_tab2">Popular</paper-tab>
          <paper-tab id="paper_tab3">Disputed</paper-tab>
          <paper-tab id="paper_tab4">Expert</paper-tab>
        </paper-tabs>
      </core-toolbar>
      <section id="section">
        <core-drawer-panel selected="main" narrow id="core_drawer_panel">
          <section id="section1" drawer>
            <core-menu selected="0" selectedindex="0" id="core_menu">
              <core-submenu active selected="0" label="Options" icon="sort" valueattr="name" id="core_submenu">
                <core-item label="Type" size="24" id="core_item1" horizontal center layout active></core-item>
                <core-item label="View" size="24" id="core_item" horizontal center layout active></core-item>
              </core-submenu>
              <core-submenu label="Settings" icon="settings" valueattr="name" id="core_submenu1">
                <core-item label="Language" size="24" id="core_item3" horizontal center layout></core-item>
                <core-item label="Privacy" size="24" id="core_item4" horizontal center layout></core-item>
                <core-item label="Region" size="24" id="core_item2" horizontal center layout></core-item>
              </core-submenu>
            </core-menu>
          </section>
          <section id="section2" main>
            <core-header-panel mode="standard" id="core_header_panel1">

      </core-header-panel>
          </section>
        </core-drawer-panel>
      </section>
    </core-header-panel>
  </template>

  <script>

    Polymer('my-element', {
      showUsernamePasswordFields: function () {
        if(this.$.core_input1.hidden == true && this.$.core_input2.hidden == true) {
            this.$.core_input1.style.display = 'block';
            this.$.core_input2.style.display = 'block';

          this.$.core_input1.hidden = false;
            this.$.core_input2.hidden = false;

          this.$.core_input.style.display = 'hidden';
          this.$.core_input.hidden = true;
        }
        else {
          this.$.core_input1.style.display = 'hidden';
            this.$.core_input2.style.display = 'hidden';

          this.$.core_input1.hidden = true;
            this.$.core_input2.hidden = true;
        }
      },
      showSearchField: function () {
        if(this.$.core_input.hidden == true) {
            this.$.core_input.style.display = 'block';

          this.$.core_input.hidden = false;

          this.$.core_input1.style.display = 'hidden';
          this.$.core_input2.style.display = 'hidden';
          this.$.core_input1.hidden = true;
          this.$.core_input2.hidden = true;
        }
        else {
          this.$.core_input.style.display = 'hidden';

          this.$.core_input.hidden = true;
        }
      }
    });

  </script>

</polymer-element>


<!-- This is where I declared my element -->
<my-element></my-element>

</body>

</html>

以下是Polymer Designer显示的内容:http://imgur.com/5ys4ltM

以下是我得到的内容:http://imgur.com/wwYlcYx

1 个答案:

答案 0 :(得分:8)

目前,从设计师到本地计算机并没有超级出色的工作流程。设计师仍处于原型/实验阶段。话虽如此,这就是我要做的事情:

  • 抓取设计人员生成的所有代码并将其放入本地文件中。
  • 确保您有platform.js的脚本包含(我知道您已经拥有此内容)
  • 查看为您生成的所有导入设计器,并将其替换为:

我看到你几乎完成了这部分,但你已经把路径留作“../some-component/some-component.html”。您需要更新这些内容以指向您的bower_components目录。

最后,如果缺少某些内容,您可能需要bower install。因此,请检查控制台以确保没有导入404.如果他们这样做,您将需要bower安装缺少的依赖项。为了简化这个 super ,我只需运行这两个命令:

bower install --save Polymer/core-elements
bower install --save Polymer/paper-elements

这将为您提供设计师使用的大部分内容。如果您仍然遗漏某些内容(例如google-map),请专门安装一个:bower install --save PolymerLabs/google-map 请注意,google-map位于PolymerLabs组织中,而不是Polymer org;)