我正在使用Angular2应用程序,用户可以在其中注册并登录.要处理会话 - 出于本讨论的目的,这意味着如果用户登录或不登录,则仅显示一个标志 - 我创建了一个如下所示的服务:
import {Injectable} from 'angular2/core';
@Injectable()
export class SessionService {
private _status:boolean;
constructor () {
if(1 == 1) {
this._status = true;
}
console.log("New SessionService");
}
isLoggedIn() {
return this._status;
}
logOut() {
this._status = !this._status;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想在我的模板中使用isLoggedIn()方法来显示或隐藏某些UI元素/菜单项.问题很简单:如何在整个应用程序中使用此服务的一个中心实例?
我为我的AppComponent尝试过类似的东西:
(...)
import {SessionService} from '../services/session.service';
@Component({
selector: 'my-app',
templateUrl: 'app/app/app.component.html',
directives: [ROUTER_DIRECTIVES],
providers: [SessionService]
})
@RouteConfig([
...
])
export class AppComponent {
constructor(private _userService: UserService, private _sessionService: SessionService) {}
}
Run Code Online (Sandbox Code Playgroud)
对于其他(子)组件基本相同:
(...)
import {SessionService} from '../services/session.service'; …Run Code Online (Sandbox Code Playgroud) 我有以下JSON字符串:
{"name":"Marine Lines","location_id":3},{"name":"Ghatkopar","location_id":2}Run Code Online (Sandbox Code Playgroud)
我想把location_id作为
3,2