首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >angular2中的全局对象

angular2中的全局对象
EN

Stack Overflow用户
提问于 2017-07-12 15:48:01
回答 2查看 559关注 0票数 0

如何在angular2中创建全局对象。我正在使用navParams in ionic2从一个页面到另一个页面逐页收集数据(可能是4-5页)。但是想要将它存储在全局对象中&最后提交它。我尝试过使用全球提供商,但没有得到大部分&也没有得到任何线索。请有任何建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-12 17:12:05

和我的问题一样,离子社区建议使用全局提供者。我确实使用了全局提供程序来保存我的7步表单数据和最后一步的提交。

我与离子型3.提供者代码一起使用:

代码语言:javascript
复制
import { Injectable } from '@angular/core';


@Injectable()
export class NcConnectionProvider {
    public statecode:any;
    public districtcode:any;

  constructor() {
    //console.log('Hello NcConnectionProvider Provider');
  }

}

Page.ts

代码语言:javascript
复制
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { NcConnectionProvider } from '../../providers/nc-connection/nc-connection';


@IonicPage()
@Component({
  selector: 'page-nc-connection',
  templateUrl: 'nc-connection.html',
})
export class NcConnectionPage {
    public distbform:FormGroup;
    public statedata:any;
    public districtdata:any;

  constructor(public navCtrl: NavController, 
    public navParams: NavParams,
    public ncdatashare: NcConnectionProvider) {

  }

    locateDistb(form: NgForm){
        this.ncdatashare.statecode = this.distbform.value.state;
        this.ncdatashare.districtcode = this.distbform.value.district;
      }

}

您可以根据需要将提供程序注入多个页面,并访问全局变量/对象。与示例中设置为this.ncdatashare.statecode = this.distbform.value.state;的值一样,您现在可以访问其他页面的this.ncdatashare.statecode,但是提供者必须在其中注入。

票数 1
EN

Stack Overflow用户

发布于 2017-07-12 16:39:58

一定要提供一些示例代码,以便更好地阐述问题。此外,下面是收集单个对象中的数据的方法。

使用变量及其getter setter创建一个服务。将此服务注入您的组件中,并在需要的地方设置数据,然后使用其get方法再次收集数据。

代码语言:javascript
复制
    @Injectable()
    export class DataService{
      private _data: any;

      get data() {
         return this._data;
      }

      set data(data: any) {
        this._data = data;
      }    
   }

在你的组件旁边

代码语言:javascript
复制
    @Component({
      // configurations
    })
    export class LoginComponent {
    constructor(public dataService: DataService) {
       this.dataService.data = { userAge: 37  }
    }
}

在需要提交这些数据的地方,只需使用getter将其收集回来。

代码语言:javascript
复制
let finalData = this.dataService.data;

不确定您的用例。但我希望它能对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45062352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档