Aurelia 奥雷利亚成分

Aurelia 奥雷利亚成分,aurelia,Aurelia,我试图创作一些作品,但我没有得到任何我期望的东西。在几乎每一个例子中,我都尝试过类似的设置,我得到了一些不同的错误,所以这只是代表性的,因为它说明了至少“某些东西”是错误的 我到处寻找有关的特定功能和语法的更多信息,但似乎无法解决这些问题 在前面提到的GistRun中,您可以看到Container元素没有正确呈现,h1没有呈现,并且@containerless被忽略 在类似的场景中,我在compose元素上忽略了containerless,导致渲染被忽略,并且我的整个过程都无法使用命名插槽 我有

我试图创作一些作品,但我没有得到任何我期望的东西。在几乎每一个例子中,我都尝试过类似的设置,我得到了一些不同的错误,所以这只是代表性的,因为它说明了至少“某些东西”是错误的

我到处寻找有关的特定功能和语法的更多信息,但似乎无法解决这些问题

在前面提到的GistRun中,您可以看到Container元素没有正确呈现,
h1
没有呈现,并且
@containerless
被忽略

在类似的场景中,我在
compose
元素上忽略了
containerless
,导致渲染被忽略,并且我的整个过程都无法使用命名插槽


我有一种感觉,我在做错事,我不太明白这是什么。如果有人知道我做错了什么,或者能给我一个解决方案,我将不胜感激。

事情没有按您预期的那样运行的部分原因是您的要点基于非常旧的框架版本。我已经将您的gist更新为Jeremy Danyow的Aurelia bundle的最新版本:您在gist中使用的旧版本框架仍然使用
内容
元素进行内容投影

除了我上面提到的以外,还有几个原因不能说明你的要点。首先,
compose
元素(以及您创建的任何自定义元素)不是自动关闭的。这是根据自定义元素规范。因此
不起作用。第二,在内容投影中使用无容器元素存在一个问题。在与团队讨论之后,这个问题不太可能得到解决,因为Shadow DOM v1规范并不真正支持无容器自定义元素。如果您从
compose
元素中删除
containerless
属性,您的演示就可以工作了。最后,您忘了在
app.html
文件的顶部添加
。因此,Aurelia不知道
是Aurelia自定义元素。除非您已全局注册了自定义元素(或任何其他视图资源),否则您必须
要求将其添加到希望使用它的任何视图中

现在,让我们讨论一下
无容器的使用。
containerless
decorator和属性不应该仅仅用于“清理”HTML。只有在绝对必要的情况下才能使用它们来实现您的目标。“让我的HTML变得漂亮”从来都不是绝对必要的。使用
containerless
时,您正在创建一个可能永远无法用作标准自定义元素的自定义元素。同样,Aurelia团队不鼓励您使用无容器元素,除非必要


我们在这里的文档中解释了使用无容器的一个有效原因:

部分原因是您的要点基于非常旧的框架版本。我已经将您的gist更新为Jeremy Danyow的Aurelia bundle的最新版本:您在gist中使用的旧版本框架仍然使用
内容
元素进行内容投影

除了我上面提到的以外,还有几个原因不能说明你的要点。首先,
compose
元素(以及您创建的任何自定义元素)不是自动关闭的。这是根据自定义元素规范。因此
不起作用。第二,在内容投影中使用无容器元素存在一个问题。在与团队讨论之后,这个问题不太可能得到解决,因为Shadow DOM v1规范并不真正支持无容器自定义元素。如果您从
compose
元素中删除
containerless
属性,您的演示就可以工作了。最后,您忘了在
app.html
文件的顶部添加
。因此,Aurelia不知道
是Aurelia自定义元素。除非您已全局注册了自定义元素(或任何其他视图资源),否则您必须
要求将其添加到希望使用它的任何视图中

现在,让我们讨论一下
无容器的使用。
containerless
decorator和属性不应该仅仅用于“清理”HTML。只有在绝对必要的情况下才能使用它们来实现您的目标。“让我的HTML变得漂亮”从来都不是绝对必要的。使用
containerless
时,您正在创建一个可能永远无法用作标准自定义元素的自定义元素。同样,Aurelia团队不鼓励您使用无容器元素,除非必要


我们在这里的文档中解释了使用无容器
的一个有效原因示例:

非常感谢您的评论。我现在对无容器的
有了更好的理解。我不是真的用它来清理代码,但我动态地将这些子项添加到flexbox中,
compose
元素让我感到不舒服。关于注册:我想我是通过
index.html
.globalResources('container')全局注册组件的globalResources('container')
这件事上完全正确。当我看到您使用的是旧版本的框架时,我甚至没有看一下就删除了它。很抱歉。非常感谢您的评论。我现在对无容器的
有了更好的理解。我不是真的用它来清理代码,但我动态地将这些子项添加到flexbox中,
compose
元素让我感到不舒服。关于注册:我以为我注册了组件glo