问题标签 [custom-element]

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 投票
2 回答
1427 浏览

javascript - 如何将 JavaScript 添加到自定义元素?

我有以下代码,它创建了一个用 Shadow DOM 封装的自定义元素:

这个想法是,当单击“运行”时,将从输入元素中获取输入并进行处理(在 performTask() 中),然后将输出放入“#result”中。我的两个问题是:

  1. 如何从 Shadow DOM 的输入字段中获取值?
  2. 我如何将输出放入#result?

以前的 堆栈溢出帖子看起来可以回答我的问题,但是所有建议的链接都不再有效,所以我想知道是否有人可以指出我正确的方向:)

PS 我宁愿不使用模板,因为并非所有浏览器都支持 HTML 导入,我希望我的所有自定义元素代码都包含在一个文件中。

0 投票
1 回答
190 浏览

jquery - Polymer:将自定义元素附加到 div 真的很慢

我正在使用 Polymer 1.2 和 jQuery 1.11.3 我定义了一个自定义元素“x-example”,其中包含大约 25 行 HTML 代码。一些嵌套元素是纸元素(因此它们本身又包含一些 HTML 代码)、一些标准 HTML 元素和一两个自己的自定义元素(比我的“x-example”小很多)。除此之外,我在这个自定义元素中有 2 个 CSS 规则和 150 行 Javascript。

所以,我们可以说我有一个中等大小的自定义元素(我不觉得它异常大)

现在的情况是:我从服务器发送了一些 HTML 标记代码,我只是使用 jQuery 的 append 方法将其附加到一个空 div

标记看起来像这样:

总而言之,我有 60 - 70 - 我想附加的元素(没有那么多恕我直言)

然而,这个附加需要 ~2200ms - ~2400ms。

现在我想知道,我是否在这里做错了,或者浏览器(在 Firefox / Chrome / Opera 中测试)是否只需要这么多时间。在用聚合物附加自定义元素时,也许我必须注意一些基本规则?

0 投票
1 回答
72 浏览

html - 我应该手动将自定义剔除元素注册到 DOM 吗?

在淘汰赛中,我们可以创建看起来像这样的自定义元素:

HTML 中自定义元素的定义仍在进行中,今天使用它的一部分过程是使用document.registerElement.

但是,我在敲除文档中找不到任何关于这些方面的内容,当我调查我的自定义元素是否在调用后通过敲除注册到 DOM 时ko.components.register,结果证明不是。

因此,如果我在淘汰赛中使用自定义元素,我是否还应该确保也使用手动注册这些元素document.registerElement?淘汰赛还没有这样做的事实让我有点困惑。

0 投票
1 回答
1561 浏览

javascript - 清理自定义元素中的事件监听器

在 中注册事件侦听器时attachedCallback,我是否有责任确保在 中再次删除这些事件侦听器detachedCallback

如下面的最小示例所示,该模式是相当可预测的,所以我想知道浏览器是否已经处理了这个问题?

0 投票
1 回答
239 浏览

c# - 在 wpf 中创建具有自定义样式的 ListBoxItems


这对您来说似乎很熟悉,但我在创建具有自定义样式的自定义列表框时也遇到了问题。我只能同时做其中一个……我不能同时使用这两个。另一件事是,您能告诉我如何在 c# 代码中添加自定义 listboxitem,以便我可以轻松地将其添加到程序中吗?我的意思是,例如,如果您将图像放在文本之前listboxitem,然后给它一个样式,但是所有项目都必须完成所有这些操作。
谢谢大家

0 投票
1 回答
627 浏览

polymer - 更改内容高度时,铁列表高度不更新

我有这个聚合物元素,其中显示了项目列表。我正在用 填充列表iron-list。每个列表项都包含一个paper-card,它隐藏了一些其他自定义元素,当我单击一个按钮时,将显示相应的视图。这部分的一切工作正常。

我遇到的问题是,当我显示自定义元素或隐藏元素时,铁列表项高度不会更新。当我显示元素时,该元素将显示在其他视图后面,当我隐藏时,会出现一个高度等于显示视图高度的空白区域。

下面是列表的代码,

和代码card-element如下

我隐藏和显示,文本输入,数据查看器和评论视图​​或根据按钮点击一次。

下面是切换数据查看器的代码,

0 投票
1 回答
288 浏览

javascript - Get correct context from child custom element which displays in repeater loop. Aurelia

I have parent template which has a repeater for child custom elements.

editUser is callback located in parent VM and i need to call it from my child custom element.

Here is my child custom component

and here is child template

So, i have passed callback function in child component by binding.

My first question: is it ok? Or there is some more neat approach to call callback from child component?

Then i have tried to get parent VM context in the child VM:

and have tried to bound callback call to this context:

but $parentCtx is not correct in this case because of repeat.for in parent template. $parentCtx is equal to my GithubUser. How can i get the correct context for editUser in parent VM? Should i path it with bounding?

0 投票
1 回答
366 浏览

javascript - 为什么自定义元素不能在静态页面上正常工作?

(最初来自https://github.com/w3c/webcomponents/issues/392,移至此处)

我正在开发一个库(至少现在位于http://infamous.io),我正在其中创建一组自定义元素来渲染 3D 场景。该库注册了两个元素,[<motor-scene>](https://github.com/infamous/infamous/blob/master/src/motor-html/scene.js)并且<motor-node>. 对于不支持的浏览器,该库依赖于这个 document.registerElementpolyfill。

我有一个小问题。当我在 Meteor 应用程序中使用自定义元素时,一切正常<body>,但是当我尝试使用静态 HTML 页面和手动包含在<head>,它会失败并且无法按预期工作。我不确定我是否做错了什么并且对自定义元素一无所知,或者 API 是否存在问题。

要查看工作演示,只需

结果如下所示,蓝绿色和粉红色元素在 3D 空间中按预期定位:

在职的

现在,如果您查看public文件夹,您将在html-demo.html. 您可以使用 直接在浏览器中打开它file://,或者localhost:3000/html-demo.html在运行 Meteor 应用程序时访问。我已经仔细检查过,我相信我正在做与 Meteor 版本相同的事情,但我根本无法得到预期的结果,它看起来像这样:

不工作

我不确定问题是什么,以及为什么它在 Meteor 版本中有效(Meteor 1.3 使用 Babel 编译代码)并且在静态版本中不起作用(也通过 Webpack 使用 Babel 编译)。

我在调用中添加console.logscreatedCallback, attachedCallback, etc 方法(例如)。这在控制台中显示了两种不同的输出顺序。registerElement

Meteor 版本的输出:

流星输出

静态版本的输出:

静态输出

会不会有加载顺序问题?registerElement关于何时应该调用是否有任何规则?我尝试将静态脚本放在页面末尾,这会更改输出顺序,但仍然呈现相同的内容(损坏,不像 Meteor 版本)。

有任何想法吗?自定义元素有什么我不知道的吗?为什么静态示例与 Meteor 示例看起来不一样?

注意:当使用WebReflection/document-register-element polyfill时,我在 Meteor 和 static 之间得到相同的不一致行为,而当不使用时。

0 投票
2 回答
865 浏览

javascript - HTML中“模板”标签、“内容”标签和自定义元素标签之间的区别

我开始学习网络组件和聚合物。我知道有一些机制可以将内容与呈现分开,这对于动态呈现内容很重要。我还理解“内容”标签通过选择需要呈现的内容(例如,某些 HTML 标签或 id 或类等中的内容)来帮助实现这一点。但是,我觉得模板标签的使用也是为了将内容与展示分开,自定义元素标签的使用也是如此,而展示/渲染完全由 JavaScript 负责。

但是我们有 3 种不同类型的标签,它们都在做同样的事情:以更结构化的方式定义内容以便于呈现。我们可以将它们的一些机制组合成更少的标签吗?

如果能够解释模板标签、内容标签和自定义元素标签的作用,与 Web 工程中遵循的编程习惯和设计模式相关,那就太好了。

0 投票
2 回答
703 浏览

polymer-1.0 - 使用带有过滤器的纸质列表框创建聚合物自定义元素

我想使用带有过滤器(搜索)的纸质列表框在 Polymer 中创建自定义元素。从下面的代码开始。但是,此代码有些地方不正确。在这方面需要帮助