【问题标题】:angularjs html component configurationangularjs html组件配置
【发布时间】:2019-08-11 23:18:20
【问题描述】:

我正在 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 函数。

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

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

【问题讨论】:

  • 您现在知道my-gridmy-column 组件的数量吗?如果是,您可能最初可以隐藏网格,只要所有列名为 $onInit 并对父组件执行某种通知。

标签: angularjs angularjs-directive angularjs-components


【解决方案1】:

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

my-grid 最初处于 Initializing 状态。

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

当子组件完成或失败时,再次通知 my-grid 与结果 并且计数器递减。

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

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

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 2013-07-26
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2022-11-25
    相关资源
    最近更新 更多