我有一个项目,其中包含两个模块(默认AppModule和创建项目时由angular cli生成的路由模块)、我创建的两个组件和我注入每个组件的构造函数中的一个服务。我希望有相同的服务实例(每次注入服务时都是单例,因为它有@Injectable({providedIn:'root'})装饰器),但每次导航到每个组件时,我都会得到一个全新的服务实例。下面是我的代码:
app.module.html
\<router-outlet\>\</router-outlet\>
应用程序。单元ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { TestComponent } from './test/test.component';
import { Test2Component } from './test2/test2.component';
@NgModule({
declarations: [
AppComponent,
TestComponent,
Test2Component
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
应用程序路由。单元ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { TestComponent } from './test/test.component';
import { Test2Component } from './test2/test2.component';
const routes: Routes = [
{ path: 'test1', component: TestComponent },
{ path: 'test2', component: Test2Component }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
测验组成部分ts
import { Component} from '@angular/core';
import { TestService } from '../test.service';
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css']
})
export class TestComponent {
constructor(private _testService: TestService) { }
}
测试2。组成部分ts
import { Component } from '@angular/core';
import { TestService } from '../test.service';
@Component({
selector: 'app-test2',
templateUrl: './test2.component.html',
styleUrls: ['./test2.component.css']
})
export class Test2Component {
constructor(private _testService: TestService) { }
}
测验服务ts
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class TestService {
private date = new Date();
constructor() {
console.log("Inside the service ", this.date);
}
}
参考以下链接:https://www.w3resource.com/angular/angular-singleton-service.php
您需要在应用程序中注册您的服务。单元ts作为提供者。
providers: [{provide: Service}]
在提供者数组中提供测试服务,app.module.ts如下。创建单例。
提供程序:[TestService]
从代码的外观来看,您的服务确实是单一的。
将此文件插入应用程序。组成部分html,然后尝试以下链接:
<nav>
<ul>
<li><a routerLink="child-a">Child A</a></li>
<li><a routerLink="child-b">Child B</a></li>
</ul>
</nav>
我怀疑您试图通过在浏览器导航栏中写入url来检查这两个组件,因此您可以在任何时候重新路由时重新加载应用程序。可能是这样吗?
我在这里创建了一个路由和单例服务使用的工作示例。
我使用下面的数字管道来格式化数量: 示例显示为< code>1,234,0。
用Entry饰器修饰的组件可以作为页面入口组件么 本文参与了 思否 HarmonyOS 技术问答马拉松,欢迎正在阅读的你也加入。
问题内容: 我有一个Java Selenium项目,该项目不会在我的计算机上运行,但会在具有相同OS版本(OSX 10.13.1),Chrome浏览器版本(63.0.3239.84)和chromedriver版本(2.34)的同事的计算机上运行。我收到消息: 但是,当我在浏览器中打开http:// localhost:18633 / status时 ,我得到一个有效的响应: 我试过换出chro
问题内容: [免责声明:可能会有更多pythonic方法来做我想做的事,但我想知道python的作用域在这里是如何工作的] 我试图找到一种方法来制作装饰器,该装饰器的作用类似于将名称注入另一个函数的作用域(以使名称不会泄漏到装饰器作用域之外)。例如,如果我有一个函数说要打印一个尚未定义的名为的变量,我想在调用它的装饰器中定义它。这是一个中断的示例: 我希望它打印“ ”,但它给出: 追溯甚至指向wh
问题内容: 我有服务: 但是当我打电话时,我无法访问和获得。因此,对我而言,逻辑上的步骤是为save()提供,因此我还必须将其提供/注入到。因此,如果我这样做: 我收到以下错误: 错误:[$ injector:unpr]未知提供程序:$ scopeProvider <-$ scope <-StudentService 错误中的链接(哇,很干净!)让我知道它与注入器相关,并且可能与js文件的声明顺序
我有一个类似于以下内容的Spring启动配置文件, 我已将角度项目中的构建文件复制粘贴到中。 不知道这有没有关系。下面是我的< code>JwtFilter.java, 我尝试过将这些js构建文件添加到元INF /资源,公共 目录结构为: < li>java/... < li >资源/ < ul > < li >资源/ < ul > < li >元信息/ < ul > < li >资源/[包含角度