首页 > 解决方案 > angularjs html组件配置

问题描述

我正在 angularjs 中实现一个简单的网格组件。我更喜欢 html 配置而不是 javascript,因为这样视图代码和逻辑代码是分开的。

例如,

<my-grid> 
     <my-column title="Name" field"name"></column>
     <my-column title="Age" field"age"></column>
 </my-grid>

我创建了一个需要 my-grid 组件的 my-column 组件。当控制器初始化时,它会检查元素并调用 my-grid 的 addColumn 函数。

在最终构建网格之前,我需要正确初始化所有我的列。初始化所有嵌套控制器后是否有任何钩子(调用 $onInit 函数)?

如果不应该改变我的设计什么是 angularjs 合适的设计?

标签: angularjsangularjs-directiveangularjs-components

解决方案


最后,我使用了 scipper 的建议并稍作调整。

my-grid 最初处于 Initializing 状态。

每个 $onInit 中的每个子组件(例如 my-column)都会通知 my-grid 它的存在,并且 my-grid 会增加一个计数器。

当子组件完成或失败时,将再次通知 my-grid 并减少计数器。

当此计数器达到零时,初始化所有子组件。这会在 $postLink 和子组件完成时进行检查。如果根本没有子组件,则需要 $postLink。

在网格初始化时,会显示一个漂亮的加载栏。


推荐阅读