Aurelia-按名称呈现自定义元素
Aurelia - render custom element by name
假设我们有一个自定义元素,该元素呈现某个东西的列表。它是一个选择器元素,所以它不影响这个东西的渲染方式。
问题是,这个东西是相当通用的,并且有自定义元素来实际渲染它。例如,对于国家,我们添加了一个旗帜图像,对于通用元素-字体图标,用户的声誉,等等。
我想要什么
现在我想传递自定义元素的名称,我想用它来渲染东西。所以不是这个
<selector data.one-way="options" selected.two-way="selected"></selector>
有类似的东西
<selector element="country" data.one-way="options" selected.two-way="selected"></selector>
在selector
中,我想要
<${element} content.one-way="el" repeat.for="el of data"></${element}>
我得到的
不幸的是,上面的代码呈现为htmlescaped
<country content.one-way="el" repeat.for="el of data"></country>
所以
有没有一种或多或少干净的方法来实现这一点?基本上,我想在选择器自定义元素中传递我想要呈现的指定自定义元素。这篇帖子和那里的答案与我的问题无关。
使用此处所述的compose
。。。好吧,这是一个选项,但我希望在CustomElement js文件中有不同的自定义元素和稍微不同的逻辑。
谢谢!
UPD
好吧,有一种明显的方法可以做到这一点,只需在视图中添加一些类似switch语句的内容
<country ... if.bind="el.type === 'country'"></country>
<phone ... if.bind="el.type === 'phone'"></phone>
<user ... if.bind="el.type === 'user'"></user>
但这会使selector
元素依赖于country
、user
等。所以我不喜欢这样。
我认为最简单的方法是使用compose
标签(就像您提到的):
<compose model.bind="item" view-model="widgets/${item.type}"></compose>
我找到了两个可能的解决方案,它们看起来可能比组合更复杂。
@bindable({
name:'myProperty', //name of the property on the class
attribute:'my-property', //name of the attribute in HTML
changeHandler:'myPropertyChanged', //name of the method to invoke when the property changes
defaultBindingMode: ONE_WAY, //default binding mode used with the .bind command
defaultValue: undefined //default value of the property, if not bound or set in HTML
})
你可以在那里找到更多详细信息http://www.sitepoint.com/extending-html-aurelia-io-way/
相关文章:
- 如何使用javascript独立地为聚合物自定义元素的每个实例的lightdom设置样式
- 注册后是否可以定义HTML5自定义元素中的生命周期回调
- 如何在 Aurelia(奥雷利亚)中访问自定义元素中的变量
- Javascript 向影子根中的自定义元素添加函数
- 在自定义元素中扩展 HTMLCanvasElement 问题
- 聚合物 - 访问自定义元素内的 DOM 输入元素
- 在具有CONTENT标记的自定义元素中使用SELECT标记时出现问题
- 聚合物种子-自定义元素依赖关系
- 自定义元素在JavaScript中创建
- 访问嵌套Polymer自定义元素中的JavaScript方法
- 当.js和.html不在同一文件夹中时,如何在Aurelia中创建自定义元素
- 自定义元素之间的聚合物双向结合[包括示例]
- 从 React 中的自定义元素中修改属性
- 聚合物:创建一个“;一般的“;自定义元素
- Aurelia-仅HTML自定义元素的内联定义
- 手动编译由 aurelia 中的其他自定义元素组成的 dom 元素
- 为什么我们必须注册一个自定义元素
- 聚合物自定义元素和聚合物手势
- 在 aurelia 中使用 repeat.for 绑定自定义元素的正确方法是什么
- 根据在单选按钮中选择的值隐藏时间表中的自定义元素