问题标签 [glimmer.js]

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 回答
2711 浏览

javascript - 如何在 Ember 应用程序中使用 Glimmer 组件?

微光网站指出:

只需将 Glimmer 组件放入 Ember 应用程序即可。你不需要改变任何事情。

我一直在关注官方的Ember 快速入门教程。我用这个替换了生成people-list.js组件的内容:

我在浏览器控制台中收到一个错误,指出@glimmer/component未定义。在我运行yarn add @glimmer/component添加依赖项后,我从 Broccoli 收到一个新错误。

此外,每当我在模板中的变量之前使用“@”时people-list.hbs,模板都无法编译。如何让 Glimmer 组件在我的 Ember 应用程序中工作?

0 投票
1 回答
758 浏览

javascript - 在 Glimmer js 中设置和初始化路由

不久前,我听说了微光并决定尝试一下。

现在我已经尝试完成他们的教程并查看 glimmer 已经创建的 todo-mvc,但似乎他们使用navigo来浏览页面。

我想知道是否有任何正确的方法来设置路由,因为以前我使用 ember.js 并且设置路由我只需要在 router.js 添加另一个路由。

因为现在使用 navigo,所以我使用这样的代码来导航路线

组件.ts

模板.hbs

上面的代码可以正常工作,但它需要我在域后面加上#。我认为需要找到另一种方式,或者可能比这种方式更合适。

0 投票
1 回答
304 浏览

javascript - GlimmerJS:如何在不使用 ember-cli/broccoli 构建的情况下将 Glimmer 用作库(例如 AMD)

GlimmerJS提供了一堆 npm 包(官方教程https://glimmerjs.com/guides/中实际安装了 20 个包用于简单演示)。每个包的文件夹中都包含dist/以下子文件夹中的几个脚本变体:

  • AMD
  • 常见的
  • 模块
  • 类型

这让我觉得我可以将 Glimmer 用作 AMD 库,而无需构建应用程序管道。我一般不会再使用 ember-cli/broccoli 或构建/打包我只是想采取最小的步骤在现有应用程序中采用 Glimmer,我不想介绍它所有的构建管道魔法。

所以我的问题是如何在运行时创建和渲染一个 Glimmer 组件,并将其模板作为字符串。

PS 关键点不是像 AMD 那样使用 Glimmer,而是在不构建的情况下使用它。

0 投票
1 回答
721 浏览

ember.js - 余烬和微光的区别

我想知道余烬和微光的区别。我知道微光用于组件。但是,为什么我们需要单独的部件用于称为 glimmer 的组件?

谁能详细解释一下?

提前致谢

0 投票
1 回答
193 浏览

javascript - glimmer.js IE 支持

带有 ember new my-app -b @glimmer/blueprint 的新的未改动的 glimmerjs 应用程序在 firefox 和 chrome 中运行,但不在 ie 或 edge 中。

Edge 给了我以下错误:

IE11:

config/targets.js应用程序中添加 IE11 后,使用“Microsoft Edge”运行,但仍然不能使用 IE11。

IE11 提供了以下错误,它指的是一个 let 符号:

我们还需要更改任何其他设置吗?

此外,通过设置 IE11,Edge 问题得到了修复,这也有点奇怪。

或者默认设置“最后 2 个边缘版本”不会转换为边缘兼容版本......

0 投票
2 回答
429 浏览

javascript - 如何从 glimmer 的组件中获取父上下文?

假设我在微光中有一个简单的组件,其中包含项目列表

模板.hbs

组件.ts

即使我从父母那里传递了一个动作

更新,template.hbs

在我的外部 component.ts

我想要做的是有一个带有列表的组件。单击列表项时,我希望它在顶部弹出一个单击事件,以便父组件可以决定隐藏列表并显示此选定项的更详细视图。

我该如何在微光中做到这一点?在反应我会通过

注意:我没有使用完整的 ember.js,只是 glimmer.js 独立

0 投票
1 回答
94 浏览

glimmer.js - 如何在微光应用程序中使用 if 内联助手

当我尝试在微光应用程序中使用 if 助手时,它给了我一个错误,例如Uncaught Error: Compile Error: if is not a helper

0 投票
1 回答
74 浏览

ember.js - ember-cli-build.js 中的树:{ mergetrees(['src',external js file])} 不起作用

在 glimmer 应用程序中,我想将外部 Js 文件与 app.js 文件捆绑在一起。我想在微光应用程序中使用 svg。我没有使用 ember-inline-svg,而是使用 broccoli-flatiron 和 broccoli-merge-trees 包将外部 js 文件与 app.js 捆绑在一起。

我在 ember-cli-build.js 中的代码是

但它给出了一个错误“无法识别模块'svgs'的类型”......

我想将 svgs 与 app.js 捆绑在一起。

0 投票
0 回答
129 浏览

glimmer.js - 你如何测试 glimmer.js 参数?

如何在测试中正确地将参数传递给 glimmer.js 组件?

例如,我有一个接受@story作为参数的组件,我将故事对象传递给该组件。它实际上在代码中运行良好,但我正在尝试学习如何测试 Glimmer 组件,但我找不到任何关于在测试环境中传递参数的文档。

我尝试了以下方法,它显然不起作用,但我关闭了吗?

更新

不起作用的新事物:




2018 年 1 月 5 日更新

我最终在 glimmer.js 存储库中被引导到一个关于这个主题的问题。对于遇到此问题的任何人,您可以查看此问题:

https://github.com/glimmerjs/glimmer.js/issues/14

剧透:这是一个比较老的问题,其中的所有链接(在撰写本文时)都是兔子洞,其中一些问题被关闭了,因为他们正在“重新思考”他们做事的方式。所以,基本上,仍然不可能干净地做到这一点。

我猜测有某种丑陋的方法可以做到这一点,但我对此不感兴趣,所以我暂时放弃了 Glimmer.js,直到测试更好。

0 投票
1 回答
175 浏览

glimmer.js - 当父级传递不同的参数时,Glimmer 子组件不会重新渲染

更明确地说,子组件创建一个属性,该属性依赖于父组件传递的参数。我没有直接在子模板中使用父参数(这种情况下工作得很好)。

来自 React 背景,我的心智模型表明传递给组件的新参数将触发重新渲染。但我知道 Glimmer 对其@tracked装饰器的处理方式有所不同。

好的,这是人为的例子。如需演示,请前往Glimmer Playground

在这里,每次单击按钮时,父级都会显示双倍的数字。但是孩子永远不会重新渲染?

我的问题是我们是否总是需要tracked在模板中包含变量。在这种情况下number。并像这样表达子模板

double是使数字翻倍的助手。

tracked如果是这样,模板中包含属性/参数的原因是什么?