像angular1一样处理angular2中的常见代码

时间:2016-03-02 10:00:44

标签: angular

Angular1

<div ng-app="myApp" ng-controller="AppCtrl">
      <ui-view>

      <ui-view>
</div>

这里将在ui-view中注入不同的观点 让我们说 home.html 会被注入,所以 homeCtrl 会进入图片。
homeCtrl 是孩子时,我可以认为 AppCtrl 是父。
此外,当 homeCtrl 被初始化时, AppCtrl 也被称为父/子场景一次。
因此,在整个应用程序中,我可以将 公共代码 放在 AppCtrl

Angular2

Boot.ts&lt; =====每次都不应该调用构造函数吗? [这只是我的想法]
 | _____ Home.ts
 | _____ Aboutus.ts

Boot.ts

export class BootCmp{
  constructor(){
     console.log('Should this run everytime??')
  }
}

哪种方法可以放置常用代码? sharedService?
还是有其他机制?

2 个答案:

答案 0 :(得分:0)

您应用的根组件是&#34;构建&#34;一旦 - 引导应用程序时调用constructor()。其余组件将根据您的应用逻辑创建和销毁,例如使用路由器或ngIf

不确定您的考虑因素&#34;常用代码&#34;但你可以考虑到这一点......

答案 1 :(得分:0)

我在你的问题中读到了什么,你的意见是两个问题: 一个是Compoment Communication,另一个是CommonCode-Initialsation。

  1. 组件通讯:
  2. 如果您“忘记”@Input和@Output,可以使用服务进行父母与子女之间的沟通。

    请参阅Angular 2食谱中的MissionControlExample,例如:

    https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

    如果您不想使用共享服务,请使用EventEmitter作为示例 请参阅:Parent侦听子事件(与MissionControlExample相同的链接)

    Angular 2的一个优点是支持HTLM5 webcomponent概念,因此.html是作为模板元素的组件的一部分。

    1. CommonCode初始化
      取决于CommonCode。如果它是特定于应用程序的,则在AppComponent中初始化它,如果它是组件特定的,则在组件中对其进行初始化。 这取决于你的代码。
    2. 要回答更具体的问题,请在您的问题中分享您的代码。