簡體   English   中英

將數據從組件發送到控制器

[英]Send data from component to controller

我有一個ID想要傳遞給該組件的控制器的組件。 這是擴展FaqController的類。 這是faq.ts

export class FaqPage extends FaqController {
  constructor(
    injector: Injector,
    public viewController: ViewController,
    public navCtrl: NavController,
    public navParams: NavParams
  )
  {
    super(injector);
    console.log(this.navParams.get('id')) 
  }
}

我有一個處理彈性搜索數據的控制器,我的service有一個方法,該方法需要faq.tsid來完成正確的查詢:

faq.controller.ts

data = {
    sections: null,
    search: '',
    menuFaq: [],
    results: []
}
findById() {
    this.faqService.findById(id, new RequestObject({
        onSuccess: (menuFaq) => {
            this.data.menuFaq = menuFaq;
        }
    }));
}

在上面的方法findById() ,我需要faq.ts文件的ID,我該如何實現?

我不確定為什么需要分開FaqPage和FaqController,因為FaqPage已經是一個Controller。 我建議直接調用faqService。

像這樣:

export class FaqPage {
  data = {
      sections: null,
      search: '',
      menuFaq: [],
      results: []
  }
  constructor(
    injector: Injector,
    public viewController: ViewController,
    public navCtrl: NavController,
    public navParams: NavParams
  )
  {
    console.log(this.navParams.get('id')) 
  }

  ngOnInit(){
    this.findById(this.navParams.get('id'));
  }

  findById(id) {
    this.faqService.findById(id, new RequestObject({
        onSuccess: (menuFaq) => {
            this.data.menuFaq = menuFaq;
        }
    }));
  }
}

無論如何,如果您確定要這樣做,則可以在FaqController的構造函數中傳遞NavParams或FAQ ID來工作

如果我正確理解了您的問題,那么您就有一個基類FaqController並且有一個擴展了該類的類稱為FaqPage 現在,您希望使用是建立在一個價值FaqPage和使用它FaqController

在構造函數中獲取頁面ID時,可以將其傳遞給控制器​​。

class FaqController {
    constructor(injector: Injector, private pageId: number) {
       // ...
    }
}

現在,您可以在findById中使用this.pageId引用頁面ID。

剩下要做的就是更改FaqPage的構造FaqPage

constructor(
    injector: Injector,
    public viewController: ViewController,
    public navCtrl: NavController,
    public navParams: NavParams
)
{
    super(injector, this.navParams.get('id'));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM