在组件1 中我有一个函数,它使用下面的代码从本地存储中返回一个选定的值,我想知道有没有办法在{中获取this.array_no1
的值strong> component2 ,这样我就不必在component2.component.ts
文件中再次编写整个代码了。请指导
ngOnInit() {
//this.document.body.innerHTML += this.myname;
var keys = Object.keys(localStorage).filter(function(key) {
return /^section\d+$/.test(key);
});
var dataArray = keys.map(function(key) {
return JSON.parse(localStorage.getItem(key));
});
for(var i=0;i<dataArray.length;i++){
var array_no = dataArray[i];
}
this.array_no1 = dataArray;
console.log(this.array_no1);
}
答案 0 :(得分:2)
您可以将本地存储代码移动到共享服务,并以所需的组件数量访问它。
<强>服务强>
@Injectable()
export class SharedService {
public array_no1:any;
constructor(){
var keys = Object.keys(localStorage).filter(function(key) {
return /^section\d+$/.test(key);
});
var dataArray = keys.map(function(key) {
return JSON.parse(localStorage.getItem(key));
});
for(var i=0;i<dataArray.length;i++){
var array_no = dataArray[i];
}
this.array_no1 = dataArray;
console.log(this.array_no1);
}
}
app模块
@NgModule({
imports: [BrowserModule,
HttpModule],
declarations: [AppComponent],
providers: [SharedService],
bootstrap: [AppComponent]
}) export class AppModule { }
您的组件
import {SharedService} from 'path of service folder';
export class yourComponent implements OnInit {
constructor(private router: Router,private sharedService:SharedService) {
}
ngOnInit() {
this.sharedService.array_no1 ;
}
}