无布线的Aurelia顶级组件

无布线的Aurelia顶级组件,aurelia,Aurelia,是否可以在没有路由器的情况下添加Aurelia顶级组件? 目标是创建一个没有路由器的组件,因为我的应用程序不需要任何基于url的导航 从我所能告诉你的,Aurelia似乎带你走上了一条路径,在这条路径上,组件是通过路由实例化的,路由是基于组件如何在路由器中注册的 相反,我只想在main index.html页面上为顶级组件添加标记: <my-component bind.current="'123456'"></my-component> 我想定义没有路由器的组件,

是否可以在没有路由器的情况下添加Aurelia顶级组件? 目标是创建一个没有路由器的组件,因为我的应用程序不需要任何基于url的导航

从我所能告诉你的,Aurelia似乎带你走上了一条路径,在这条路径上,组件是通过路由实例化的,路由是基于组件如何在路由器中注册的

相反,我只想在main index.html页面上为顶级组件添加标记:

<my-component bind.current="'123456'"></my-component>

我想定义没有路由器的组件,只使用Aurelia的模板和数据绑定功能。
可能吗

在index.html(默认项目的body标记内)中尝试了此操作


但它似乎没有把它捡起来。理想情况下,我只想在服务器提供的页面上的标记中定义它,因为它使我能够在元素上动态设置属性

<my-component current.bind={{someServerGeneratedId}}></my-component>

在上面的例子中,我将使用类似于mustach的模板框架在服务器提供页面时动态呈现Aurelia。 我可以将该组件包装到另一个“landing”组件中,但这使得使用服务器生成的绑定进行设置很难获得好处

更新: 根据Rob的回答:
-他希望在将来的版本中能够添加根组件到登录页。我知道有一些不使用路由器的方法,但它仍然依赖于在应用程序引导期间拉入局部视图。这并不直接使用路由器,但从概念上讲,这实际上只是一个基于隐含/约定的客户端nav。最后有一个客户端请求拉入视图,这意味着我无法从初始服务器响应动态生成html。

是的,没有路由器,您可以非常轻松地完成此操作。只需从app.js中删除路由器配置,并在app.html中删除路由器代码

我认为您遇到的问题是在index.html中再次指定dist文件夹。你应该这样引用它-

<require from="my-component"></require>
<my-component current.bind="someServerGeneratedId"></my-component>


这将正确绑定。

我猜您误解了这里的路线概念

在撰写本文时,Aurelia的index.html页面是您放置“加载”内容的初始页面,Aurelia在其中引导整个应用程序

因此,您不能将自定义组件直接放在其上,但这应该不是问题

如果您不更改Aurelia上的任何配置,它将查找您的app.html来引导您的应用程序,在那里您可以拥有您想要的任何东西(路由与否,无关紧要)。所以,你应该把你的组件放在你需要的其他标签/组件/等等旁边

<template>
  <require from='./my-component'></require>

  <my-component current.bind="serverGeneratedID"></my-component>
</template>
我制作了一个plunker,没有任何路由,在app.html中有一个自定义组件,还有一些模拟您需要的东西

<template>
  <require from='./my-component'></require>

  <my-component current.bind="serverGeneratedID"></my-component>
</template>


如果您还需要其他内容,请在此处发表评论,我将尝试进一步说明。

看来,在未来的版本中,将能够直接将其添加到index.html:添加什么?路由器?我的坏朋友以为你想把它拿走。如果不是这样,请告诉我,我可以试着看看您缺少了什么。根据Rob的评论,我的理解是,直接在index.html中添加组件的功能是他们仍在努力的。看起来他们将在未来的版本中添加它。我需要它,以便动态生成从服务器响应传递到组件的参数。我知道您来自哪里,但这不是我要寻找的解决方案。根据Rob的回答:-在将来的版本中,可以直接在登录页中添加根组件。您的解决方案是一种变通方法,但这不是我想要的,因为这仍然需要从客户端启动ajax请求来添加app.html。我的目标是不发出任何ajax请求,因为这会阻止我从初始同步web请求动态构建标记。基本上,您的解决方案与定义单个根路由非常相似,但按照惯例,我们让Aurelia注入初始视图。它没有使用路由器,但它与根RouteEyes隐含着相同的概念,我知道你想要什么,我也需要它。正如我在“撰写本文时”所说,不幸的是,我们不能这样做。但这在未来的版本中是可能的,这是我几乎每天都在和Rob谈论的事情,我们将有很好的功能来帮助提高首次加载性能和SEO。听起来很棒。我期待着看到进展。