angular - 在 Angular 中注入服务
问题描述
我目前正在通过教程学习角度。我有一些问题要重现并理解如何将服务作为依赖项注入的示例。
角度版本:7.2.9
由于尚未涵盖更高级的调试技术,因此我尝试使用 console.log(...) 来查找问题。我在 app.components 构造函数中添加了以下内容:
export class AppComponent {
userLogin: UserLoginService;
constructor() {
console.log( this.userLogin );
console.log( UserLoginService );
}
这导致:
> undefined
> ƒ UserLoginService() {
console.log('Hello world from the user login service.');
}
服务定义为
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class UserLoginService {
constructor() {
console.log( 'Hello world from the user login service.' );
}
}
然后我尝试在 app.components 中使用它:
import { Component } from '@angular/core';
import { UserLoginService } from './user/user-login.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
userLogin: UserLoginService;
constructor() {
console.log( this.userLogin );
console.log( UserLoginService );
}
}
我不明白为什么该成员userLogin
仍然存在undefined
。任何指出问题的提示将不胜感激。
解决方案
请如下使用
import { Component } from '@angular/core';
import { UserLoginService } from './user/user-login.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
constructor(private userLogin:UserLoginService) {
console.log( this.userLogin );
}
}
推荐阅读
- neo4j - Neo4J 升级:为什么用户角色没有转移?
- android - 如何设置 TabLayout 的 ta 的圆形波纹形状?
- php - 带有白色字段的html表单到mysql
- java - 在 Android 上执行 MediaRecoder.start() 时出现 IllegalStateException
- c - 在输入 N 之后创建结构的 N 个元素
- css - 垂直滚动线
- flutter - FutureBuilder 类参数 future 是一个带参数的异步函数
- c# - 有没有聪明的方法让这个填充更少?如果是怎么办?
- php - Maatwebsite excel library v2.1 如何删除我不需要的库生成的额外列
- node.js - 在不配置验证器的情况下无法设置未编译的验证规则