Angular 1 中如何将动态组件传递给容器组件

How to pass dynamic components to a container component in Angular 1

有没有办法将 运行 时定义的组件传递到 Angular 1 中另一个组件的内部渲染?这是 React 库的一种相当常见的模式,但我无法弄清楚它在 Angular.

中是如何工作的

这是一个 React 示例:

  const List = ({items, ListItem=DefaultListItem}) => {
    return (
      <ul>
        {items.map((item) => (
          <ListItem key={item.id} item={item}/>
        ))}
      </ul>
    );
  }

  // Then later on, you'd define a custom list item:
  <List items={items} ListItem={CustomListItem}/>

我知道在 Angular 1 中使用 ng-transcludeng-include 定义动态子项的一些方法。但是这些方法在迭代数组的上下文中不起作用,每次迭代渲染一个自定义组件。你如何用 Angular 实现这一目标?

这个问题的解决方案是使用 ngRepeat 指令。这是一个例子:

<ul ng-repeat="obj in collection track by $id(obj)">
    <li>{{obj.prop}}</li>
</ul>