作为$rootScope作为angularjs中所有应用程序范围的根,我们作为angular2中的根级别组件具有什么?
是引导应用程序的应用程序组件吗?
答案 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
关键字和组件名称来指定我们的应用程序的根级别,这是我们的应用程序的入口点,有很多功能,我们可以在启动我们的应用程序时提供/指定,包括: -
基本语法如下: -
bootstrap(AppComponent, [shared_serivces_directives]);
bootstrap的第一个属性是组件的类名,我们必须在加载项目时首次加载它。
而不是第二个可选的参数,这里我们可以提供Common指令,服务等等。
在angular2中也没有$rootscope
,例如angular1.x
我希望这能清除与angular2 app的Rootlevel相关的所有内容。