angularjs - 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 合适的设计?
解决方案
最后,我使用了 scipper 的建议并稍作调整。
my-grid 最初处于 Initializing 状态。
每个 $onInit 中的每个子组件(例如 my-column)都会通知 my-grid 它的存在,并且 my-grid 会增加一个计数器。
当子组件完成或失败时,将再次通知 my-grid 并减少计数器。
当此计数器达到零时,初始化所有子组件。这会在 $postLink 和子组件完成时进行检查。如果根本没有子组件,则需要 $postLink。
在网格初始化时,会显示一个漂亮的加载栏。
推荐阅读
- python - 猜谜游戏isdigit帮助python
- php - 移除特定的 URL 参数
- angular - Firefox 中的 Twilio 视频大小调整
- python - 如何在 Tensorflow 中进行联合推理
- laravel - Laravel 铸造指数浮动不起作用
- java - Java Socket连接在没有调用关闭连接的情况下关闭
- api - Laravel API 输出中的包装器
- swift - 验证来自 macOS 应用扩展的收据?
- php - 无法使用 AJAX 接收 PHP 对象
- django - Django Rest Framework 在创建 django 用户时创建用户配置文件