问题标签 [polymer-starter-kit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

polymer - 具有多级路径的聚合物入门套件打开 url

在入门工具包中,当我使用“gulp serve”运行并输入一个具有多个级别路径的 url,例如 localhost:5000/register/user 时,它会失败。它基本上在 localhost:5000/register/elements/elements.html 而不是 localhost:5000/elements/elements.html 中查找 elements.html。

但是,当我通过从另一个页面单击打开链接时,它可以工作。当我输入网址时,知道如何使这项工作吗?

0 投票
1 回答
266 浏览

json - 跳过预缓存:无法读取 null 的属性“concat”

这是我的问题:我如何尝试摆脱“跳过预缓存”并将来自https://laoadventist.info/beta/r的所有内容缓存为预缓存列表?

另外,我设置是否正确,precache="https://laoadventist.info/beta/r"或者我应该将其设置为获取数据并返回它的函数?

Skipping precaching: Cannot read property 'concat' of null使用My Polymer App 时出现在控制台上

我正确地假设我可以precahce这样的URL,对吗?

我正在尝试从 laravel 5.1 加载一个 json 结果来设置我的预缓存应该是什么......我知道这不是最优雅的,但我是 Polymer、缓存、服务工作者等的新手,并且使用这个应用程序作为学习机会。一天结束时会有所不同,但现在我只想加载所有内容。:)

我想预缓存所有数据,以便用户可以在离线时充分利用这个应用程序(虽然稍后我会设置它,这样他们就不必预缓存加载和加载 json 请求,只需要他们想要的,就像每本书一样——但那是以后的事了)。

0 投票
3 回答
2982 浏览

polymer - 如何构建具有 100 多个元素的大型聚合物项目

Polymer Starter Kit是启动 Polymer 项目的一个很好的参考。您只需将所有元素放入app/elements文件夹中。这对于中小型项目非常有效。

当你有超过 30 个元素时,它会变得混乱。然后您想将平面elements文件夹重构为更深的文件夹结构,如下所示:

- elements -- my-module-1 --- my-element-1-1 --- my-element-1-2 -- my-module-2 --- my-submodule-2-1 ---- my-element-2-1-1 ---- my-element-2-1-2 --- my-submodule-2-2 ---- ...

有几个问题:

  • 当您想演示和测试子模块时,您需要在每个元素定义之上导入所有依赖项
  • 你打破了“所有元素都是兄弟姐妹”的模式
  • 你的相对路径变得混乱(很多../../../my-module-x/my-module-y
  • 您要么有很多类似的路径,../../../../bower_components要么使用/bower_components,那么您需要在您的开发服务器中进行重定向,并且绝对路径会弄乱 gulp-vulcanize。
  • 每个元素都有一个演示和测试文件夹,您的目录结构会快速增长

这是一篇很好的文章,描述了这个问题并指出了两个解决方案:

  • 单独的元素存储库
  • 构建可重用元素

Topeka 应用程序中的独立元素存储库适用于大约 30 个元素,但是一旦你达到 100 多个元素,你就会遇到同样的问题。

一开始,构建可重用元素似乎是个好主意,因为您可以很好地封装所有内容。但是处理数百个 repo 是很痛苦的,当你想在你的 repo 中包含多个单个元素时,标准模式就会中断。

所以我想知道,关于如何构建大型 Polymer 应用程序的良好做法是什么?有没有超过 30 个元素的项目示例?

包含多个元素的可重用元素 repos 有哪些好的做法?

多入口点的良好结构是什么?

一般而言:您如何扩展 Polymer 项目?

0 投票
2 回答
589 浏览

.htaccess - 聚合物路线不起作用 聚合物入门套件

我克隆了聚合物入门套件,它工作得非常好。

所以在占位符路由中有一个名为 http://localhost:5000/users/Rob的页面。如果我通过单击 rob 链接从用户页面移动到 Rob 页面,则上述 url 有效。

但是如果我直接在浏览器上粘贴http://localhost:5000/users/Rob并按回车,它就不起作用。

我假设上述问题可以通过使用 htaccess 来解决。但无法弄清楚如何。

下面是我的 .htaccess 代码

0 投票
1 回答
579 浏览

polymer - 从路由器到 dom 元素的聚合物数据

我从聚合物 1.0 开始,并创建了一个新的路由端点,如下所述。

所以如果我去用户/鲍勃它将去路由“用户信息”

在我的 index.html 中,路线定义如下

其中 web-homepage 是一个自定义元素。

自定义元素定义如下

有没有办法在ready函数中获取值路由参数“:name”,即bob?

0 投票
2 回答
1839 浏览

polymer - 如何向 PHP 提交 Polymer 表单并显示响应

使用 Polymer 1.0,我设置了一个铁表格来提交一个简单的联系表格。这个想法是使用 PHP 将表单提交到数据库表,然后在不刷新的情况下将来自 PHP 端的响应显示到浏览器中 - 典型的 AJAX。不过,我对 Polymer 环境很感兴趣 - 似乎应该有正确的方法来做到这一点,但数小时的搜索和修补并没有取得成果。

我确实使用 Polymer Starter Kit (lite) 启动了这个项目,它使用脚本 (app.js) 添加事件侦听器等。到目前为止,我还没有破坏该功能,尽管文档中的所有示例都没有这样做,所以它使事情变得更加复杂,因为我仍然习惯于 Polymer。

这是我到目前为止所得到的。非常感谢您提供的任何建议。

索引.html

...

应用程序.js

失败的方法1

我尝试将 iron-ajax 元素添加到index.html并从app.js引用它,如下所示。不幸的是,当它尝试添加事件监听器时,整个应用程序崩溃了。这似乎很奇怪,因为 app.js 中还有许多其他部分以相同的方式添加事件侦听器。

索引.html

应用程序.js

失败的方法 2

在 SO 上找到了这个答案,并决定尝试这个iron-form-response活动。我现在收到的输出是[object HTMLElement],这至少是一些东西,尽管我不确定它是否真的有效。

其他一切都保持不变,我将表单的目标更改为指向我的 php 脚本,然后将 app.js 中的内容替换为以下内容:

应用程序.js

我离得更近了吗?

不放弃

使用我上面第二个失败的方法,iron-form 似乎正在发出请求,因为当我监听 'iron-form-response' 事件时,它确实触发了。

但是,唯一返回的是[object HTMLElement]- 不知道该怎么做。我尝试吐出它的一些属性(如 developer.mozilla.org 上记录的 - .title.properties.style等),但它们似乎是空的。Iron-form 真的返回一个 HTMLElement 对象还是这是一个错误?我认为它会从我提交表单的 PHP 脚本返回结果,就像普通的XMLHttpRequest. 如果铁形式以某种方式将其压缩成一个物体,有没有办法再次将其拉出?

TL;博士

我认为这整件事归结为:iron-form-request当我的 Iron-form 位于 index.html 并且 index.html 由 app.js 引导时,我如何正确添加事件监听器(for ),就像 Polymer 中默认发生的那样1.0 入门套件?

进一步简化:当我不创建元素(仅使用它)时,如何将事件侦听器正确添加到 Polymer 的影子 DOM?

漏洞?

在user2422321下面精彩回答的帮助下,正在执行iron-request并收到成功的iron-request响应。但是,它的“response”属性返回 NULL,即使“succeeded”返回 true,也没有错误,并且 XHR 完全解析。“get”和“post”方法都用相同的 NULL 结果进行了测试。

我看到 10 天前在 GitHub 上准确记录了一个与这些症状相匹配的错误,尽管它没有引起太多关注:Issue 83。这是不幸的,但它似乎是一个错误。在修复元件本身之前,我不相信有任何方法可以使其正常工作。

Iron-REQUEST 想看什么?!

当我进一步探索时,我发现即使 XHR 直接返回“null”,即使它的 responseURL 正确且 statusText 为“OK”。我开始怀疑我正在尝试运行的实际 PHP 脚本(目前只输出“Hello World”)是否有问题。

是否iron-form-request期望结果中有某种格式或数据类型?我尝试添加header('Content-Type: text/plain');到我的 PHP 文件,然后尝试将其格式化为经过验证的 JSON 字符串,但响应仍然是null. 似乎没有任何作用。

老派直接XMLHttpRequest的工作正常......在提交请求之前,铁形式是否畸形?

我确实设置了一个处理程序来捕获 iron-form-error 但没有收到任何内容。根据回复中的每一条信息,世界上的一切都是完美的。只是......空响应。一遍又一遍……这真是令人难以置信的沮丧。

解决方案!(有点)

好吧,我已经够绝望了,我开始翻阅 Iron 源代码本身。目前看来, Iron-form 仍然有些小故障,并且仅在响应格式正确的 json 时才返回内容。在iron-request.html中,它似乎允许以下类型,但不要上当。我只能让json工作 - 我认为其余的最终都会符合要求。

  • json(应用程序/json)
  • 文本(文本/纯文本)
  • html (文本/html)
  • xml(应用程序/xml)
  • arraybuffer(应用程序/八位字节流)

因此,目前,我们需要将响应格式化为 JSON 并包含一个 DOCTYPE 声明以进行匹配。

就我而言,这看起来像这样(感谢 user2422321 对我的帮助很大):

索引.php

应用程序.js

最后,这是最重要的拼图。我以前没有考虑过这个文件输出的内容非常重要,因为直接 XMLHttpRequests 返回文件吐出的任何内容。

联系我们.php

有了所有这些部分,它就可以工作并包含我们从contactus.phpe.detail.response回显的 JSON 响应。

0 投票
0 回答
239 浏览

javascript - 自定义元素 Polymer Facebook 插件集成中的问题 (javascript sdk)

我正在修复我的“聚合物”网站中的一些功能,但我在 facebook 页面集成方面遇到了问题。由于单击按钮,我需要通过 javascript 实例化它。当我通过 javascript 导入 facebook sdk 时,我也在我的元素上启动了 FB.XFBML.parse(),但没有任何反应。没有错误。没有渲染。我该如何解决?在我直接在 index.html 中使用这个 facebook 插件并且它现在可以工作之前,我想在自定义元素中使用它。</p>

0 投票
0 回答
61 浏览

node.js - 在 Windows 8 上运行 Polymer Starter Kit 的问题

谁能告诉我在 Windows 8 上运行聚合物入门套件的正确要求设置。
我正在尝试在 Windows 8 上运行聚合物入门套件。

npm install 期间的第一个错误

节点版本需要 0.12.x 而不是 4.2.2 ---------- 我修复了

npm install 期间的第二个错误

Python 要求 < 3.0,所以我得到了 python 2.7.10 ---------- 我修好了

现在在 npm 安装期间,它给出了 .NET Framework 的错误

在此处输入图像描述

0 投票
1 回答
335 浏览

bash - Polymer 1.0:从命令行安装 Polymer Starter Kit 会引发错误

如何解决此问题以便安装 Polymer Starter Kit?

命令:

引发以下错误:

版本配置

  • MacBook 空气
  • OS X v.10.10.5 优胜美地

工具链:

0 投票
1 回答
828 浏览

polymer - Polymer Starter Kit - 尝试启用服务工作者时出现 ERR_FILE_EXISTS

我正在尝试按照此处的说明在我的聚合物入门套件克隆中启用离线支持(服务人员)。

但是,在gulpfile.jsindex.htmlelements.html中进行更改后,每当我刷新页面时,我都会收到以下错误。 在此处输入图像描述

此外,如果我在 Chrome 开发人员工具中将限制设置更改为离线并刷新,页面会返回“无法连接到 Internet”消息,因此很明显缓存不起作用。

还有什么我需要做的吗?

更新:刚刚解码错误消息中的 url(即http://localhost:5000/bower_components/platinum-sw/platinum-sw-register.html&clientsClaim=true&skipWaiting=true&version=1.0)并在 Chrome 中运行它并得到404错误. 如果我删除 .html 之后的所有内容,则可以找到该文件。