【问题标题】:Angular 2 processing orderAngular 2 处理顺序
【发布时间】:2017-04-27 01:45:05
【问题描述】:

我是 Angular 的新手,正在尝试了解它处理文件应用程序的顺序。 所以,根据我对订单的理解: 1- main.ts 被处理,并且属于所导入平台的引导方法接受根模块文件作为参数。 2- app.module.ts 被处理,它将导入应用程序所需的所有必要的包和应用程序文件。这里也是声明所有不同的组件和指令以及不属于应用程序的内容以供在应用程序中使用的地方,以及引导应用程序根组件的地方,从而导致组件树模型自上而下呈现。 3 - 这是我努力完全理解正在发生的事情的地方。

那么从被渲染的根组件开始,Angular 会沿着父子路径沿着根组件子组件的树向下依次渲染它们? 因此,假设在 AppComponent 声明之后是 BookItemComponent,然后是 BookItemList 组件,最后是一个名为 FavoriteDirective 的指令。 因此 AppComponent 启动并在应用程序标记的主体中呈现父自定义 DOM 元素。 然后,嵌套在其中的是 BookItemComponent,它创建了另一个名为 的自定义 DOM 元素。在这个组件类中,我们有一个名为 bookItem 的输入选择器。 然后,嵌套在其中的是 BookItemList 组件,它包含一个名为 bookItems 的书籍项目数组。 最后,FavoriteDirective 只处理一些简单的宿主绑定来为宿主元素创建一个类。

简而言之,我的问题 - 假设 BookItemComponent 已呈现,但它的标记中有一些绑定,这些绑定依赖于 BookItemListComponents 类或 FavoriteDirectives 类中的代码。 Angular 会跳过 BookItem 并查看这些文件吗?或者 Angular 会暂停它对 BookItemComponent 类的处理,向前跳过并为它无法解释的项目寻找数据匹配?或者也许停止并迭代到下一个组件并按顺序前进,一旦找到它无法解释的项目所需的数据,然后返回以填补空白? 当我看到这种情况发生时,我发现很难遵循渲染路径。也许我只是想错了?

【问题讨论】:

    标签: javascript angular typescript


    【解决方案1】:

    不确定您所说的“查找数据”是什么意思。绑定是明确的在哪里寻找数据。如果绑定引用的字段还没有数据,那么当 personnull 时,如果这使表达式无效,例如 {{person.name}},则它要么抛出(您可以使用 {{person?.name}} 来避免异常) .否则 Angular 将在数据可用并运行更改检测后“找到”数据。

    【讨论】:

    • 变更检测是我不理解的。感谢您给我正确的位置!
    猜你喜欢
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    相关资源
    最近更新 更多