如何从component2中的component1访问变量值

时间:2017-05-28 11:56:35

标签: angular

组件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);
  }

1 个答案:

答案 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 ;
 }
}