私が行ったことの概要は です。1)文字列値を格納する簡単なサービスを作成しました。 2)はappModuleで提供されています。 3)2つのコンポーネントが作成されました。私はコンポーネントでサービスを提供するのではなく、コンストラクタを通してサービスを注入します。 4)1番目と2番目の間をナビゲートするための2つのルートが追加されました。最初のコンポーネントはサービスに文字列を保存し、2番目のコンポーネントはサービスから格納された文字列を取り戻す必要があります。これは機能しません。 私は2日間のチュートリアルを終えて解決策を探しています - うまくいくようです!スタックオーバーフローのここで解決された答えのどれも私のための明確な解決策を提供していないようです。他のすべてが働いています。インポートはOKです。ブラウザではコンパイルやランタイムエラーは発生しません。アングル2シングルトンサービスが私のために働いていない
助けてください。ここで
は明らか輸入せずにコードスニペットです:// 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();
}
}
Q:私が間違っているのか?
どのように1つの相手から別の相手にナビゲートしていますか?あなたはURLを変更していますか?あなたは毎回ブラウザーを更新していて、それがうまくいかないことを意味します。あなたがリフレッシュするとき、あなたはオールアールの一時記憶を耳にするでしょうから。 – Smit
plnkrのリンクをご提供できますか? – Gelidus
あなたのサービスは注射可能でなければなりません。 – Monicka