angular2应用程序的根源是什么?

时间:2016-06-06 15:47:29

标签: angular

作为$rootScope作为angularjs中所有应用程序范围的根,我们作为angular2中的根级别组件具有什么?

  

是引导应用程序的应用程序组件吗?

3 个答案:

答案 0 :(得分:1)

您必须引导根组件

bootstrap(AppComponent);

此组件包含单个Angular应用程序的所有组件和指令。可以在一个页面上引导多个应用程序。

这不是根范围,因为Angular2中没有范围。

您可以创建对您的应用程序来说是全局的共享服务,使用喜欢根范围。

如果在@Injectable()或根应用程序的bootstrap() 中提供了一个服务(带有providers装饰器的普通班级),那么就会有只有这个特定Angular应用程序中的这个单个实例

@Injectable() 
class RootScopeService { 
  // not a common name in Angular2 applications
  // I just used it for demo purposes
}

bootstrap(AppComponent, [RootScopeService]);

注入的任何地方都会注入相同的实例。

class SomeComponentOrDirective {
  constructor(private rootScope:RootScopeService) {}
}

如果您希望全局服务(RootScopeService)做任何事情,您需要自己添加方法,属性,可观察量。

答案 1 :(得分:0)

任何类都可以是“rootScope”,你只需要在bootstrap方法中添加它

bootstrap(AppComponent, [MyRoot]);

此外,您不需要输入@Injectable,它不是强制性的

export class MyRoot{ 
 this.user = "AngJobs";
 this.usersOnline = 10;
}

答案 2 :(得分:0)

简单来说

  

Angular 1.x(ng-app)= Angular 2.x(bootstrap(component, [...])

在angular 1.x中我们使用此指令自动引导AngularJS应用程序。 ngApp指令指定应用程序的根元素,通常放在页面的根元素附近。

在angular2中的相同情况我们必须使用bootstrap关键字和组件名称来指定我们的应用程序的根级别,这是我们的应用程序的入口点,有很多功能,我们可以在启动我们的应用程序时提供/指定,包括: -

  • 注入共享/全局服务或变量
  • 注入共享指令
  • 使用PLATFORM_DIRECTIVES绑定多个组件/指令(通过这样做,这些在整个应用程序中都可用,而不是每次都需要在指令和提供程序列表中提供。)

基本语法如下: -

bootstrap(AppComponent, [shared_serivces_directives]);

bootstrap的第一个属性是组件的类名,我们必须在加载项目时首次加载它。

而不是第二个可选的参数,这里我们可以提供Common指令,服务等等。

在angular2中也没有$rootscope,例如angular1.x

我希望这能清除与angular2 app的Rootlevel相关的所有内容。