gpt4 book ai didi

Angular 2 单例服务不适合我

转载 作者:行者123 更新时间:2023-12-02 21:32:15 24 4
gpt4 key购买 nike

我所做的总结是1) 创建一个存储字符串值的简单服务。2)在appModule中提供。3) 创建了 2 个组件:第一个和第二个。我不在组件中提供服务 - 而是通过构造函数注入(inject)服务。4) 添加了 2 条路线用于在第一和第二之间导航。第一个组件将字符串保存到服务中,第二个组件应该从服务中检索存储的字符串 - 这是不起作用的。我已经研究了两天的解决方案,浏览了教程 - 看起来应该可行! stackoverflow 上的所有已解决答案似乎都没有为我提供明确的解决方案。其他一切都正常。导入正常 - 浏览器中没有编译或运行时错误。

请帮忙。

以下是没有明显导入的代码片段:

// app.module.ts
...
const appRoutes: Routes = [
{path: '', redirectTo: '/first', pathMatch: 'full'},
{path: 'first', component: FirstComponent},
{path: 'second', component: SecondComponent},
];


@NgModule({
declarations: [
AppComponent,
FirstComponent,
SecondComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
RouterModule.forRoot(appRoutes)
],
providers: [DataService],
bootstrap: [AppComponent]
})
export class AppModule { }


// first component
...

import {DataService} from '../services/data.service';

@Component({
selector: 'app-first',
templateUrl: './first.component.html',
styleUrls: ['./first.component.css']
})
export class FirstComponent implements OnInit {
localToken: string;

constructor(private svc: DataService) { }

ngOnInit() {
this.svc.save("000000");
}

}


// second component
...
import {DataService} from '../services/data.service';

@Component({
selector: 'app-second',
templateUrl: './second.component.html',
styleUrls: ['./second.component.css']
})
export class SecondComponent implements OnInit {
localToken: string;

constructor(private svc: DataService) { }

ngOnInit() {
// THIS DOES NOT WORK !!!
this.localToken = this.svc.retrieve();

}

}

问:我做错了什么?

最佳答案

在 Simona 的帮助下,我终于让单例服务正常工作了!

  • 创建服务
  • 将其导入appModule
  • 将其添加到提供者数组

在组件中

  • 从“{path}”导入服务 {};
  • 将其作为以下类型的私有(private)参数添加/注入(inject)到构造函数中服务导入
  • 在类成员方法中使用 this.parm...

有效!,谢谢西蒙娜

关于Angular 2 单例服务不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42593868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com