[英]Creating an Angular.Dart Cube component with 6 template arguments
我正在尝试创建一个Angular.Dart组件,它旨在成为一个多维数据集。
多维数据集的每一侧都包含它自己的内部HTML,该组件的属性将设置哪一侧是当前可见侧。 (一次只有一方活跃)
我的问题是 - 如何创建一个接收6个模板参数的组件,每个组件都将作为特定的多维数据集端内部HTML插入?
这就是我想要创建的:
<cube>
<sideA>Content of side A</sideA>
<sideB>Content of side B></sideB>
...
</cube>
该组件将是这样的:
<ul>
<li class="side-a">{{sideA}}</li>
<li class="side-b">{{sideB}}</li>
...
</ul>
可能吗?
谢谢
深入研究这个问题之后,我发现答案是基于将内部立方体侧面注入立方体实例本身。
这是一个概念上的改变 - 而不是使立方体本身的立方体参数,实际发生的是每个立方体的侧面在创建时将其自身添加到立方体。
这是通过将CubeComponent
标记为以下来实现的:
@NgComponent(
visibility: NgDirective.CHILDREN_VISIBILITY,
selector: 'cube',
templateUrl: '../../lib/cube/cube_component.html',
cssUrl: '../../lib/cube/cube_component.css',
publishAs: 'ctrl'
)
class CubeComponent {
var sides = new List<CubeSideComponent>();
add(CubeSideComponent side) {
sides.add(side);
}
}
这意味着<cube>
组件(它是<side>
组件的父组件)通过将可见性提及为NgDirective.CHILDREN_VISIBILITY
来向每个子组件展示它自己。
CubeSideComponent
定义一个构造函数,它接收父CubeController
作为参数,然后通过调用'add'方法将自身(this)添加到多维数据集的sides-collection中:
@NgComponent(
selector: 'side',
templateUrl: '../../lib/cube/cube_side_component.html',
cssUrl: '../../lib/cube/cube_side_component.css',
publishAs: 'ctrl',
)
class CubeSideComponent {
CubeSideComponent (CubeComponent cube) {
cube.add(this);
}
}
那是新的标记:
<cube>
<side>Content of side A</side>
<side>Content of side B</side>
...
</cube>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.