将 html ngModel 值传递给服务 Angular

发布于 2025-01-15 16:19:30 字数 1464 浏览 2 评论 0原文

我想传递一个 html ngModel 值它位于 Combocomponent.html 上,连接到名为 Home.service.ts 的服务。

在服务内部,我有以下代码:

  configUrl1 = 'https://localhost:44361/api/Active_Serviced_Outlets?Year=2021&quarter=1&month=1';
  getMethod1() {
    
    return this.http.get(this.configUrl1);
  }  

我想动态地将 [(ngModel)]="selectedYear" 值传递给选定的年份,以便每次用户输入年份时。

ComboComponent.html

<div class="row">
  <div class="column">

    <p> &nbsp; &nbsp;<b>Year </b></p>

    <kendo-dropdownlist [data]="year" [(ngModel)]="selectedYear"></kendo-dropdownlist>
  </div>
  <div class="column">

    <p> &nbsp; &nbsp;<b>Month</b></p>
    <kendo-dropdownlist [data]="Month" [(ngModel)]="selectedMonth"> </kendo-dropdownlist>
  </div>
  <div class="columnA">
    <p> &nbsp; &nbsp;<b>Quarter</b></p>
    <kendo-dropdownlist style=" width: 92%;" [data]="Quarter" [(ngModel)]="selectedQuarter"> </kendo-dropdownlist>
  </div>

   
</div>
<br />
<!--<div class="example-config">
  &nbsp; &nbsp;Selected Values: {{selectedYear}} &nbsp; &nbsp; {{selectedMonth}} &nbsp; &nbsp; {{selectedQuarter}}
</div>-->

谢谢!

I want to pass an html ngModel value <kendo-dropdownlist style=" width: 92%;" [data]="year" [(ngModel)]="selectedYear"> which is located on Combocomponent.html, to a service which is called Home.service.ts.

Inside the service I have this code:

  configUrl1 = 'https://localhost:44361/api/Active_Serviced_Outlets?Year=2021&quarter=1&month=1';
  getMethod1() {
    
    return this.http.get(this.configUrl1);
  }  

I want to dynamically pass the [(ngModel)]="selectedYear" value to selected Year so every time the user inputs an year.

ComboComponent.html

<div class="row">
  <div class="column">

    <p>    <b>Year </b></p>

    <kendo-dropdownlist [data]="year" [(ngModel)]="selectedYear"></kendo-dropdownlist>
  </div>
  <div class="column">

    <p>    <b>Month</b></p>
    <kendo-dropdownlist [data]="Month" [(ngModel)]="selectedMonth"> </kendo-dropdownlist>
  </div>
  <div class="columnA">
    <p>    <b>Quarter</b></p>
    <kendo-dropdownlist style=" width: 92%;" [data]="Quarter" [(ngModel)]="selectedQuarter"> </kendo-dropdownlist>
  </div>

   
</div>
<br />
<!--<div class="example-config">
     Selected Values: {{selectedYear}}     {{selectedMonth}}     {{selectedQuarter}}
</div>-->

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎夜雨 2025-01-22 16:19:31

您只需要为您的服务添加 selectedYear 即可。

service.ts

public selectedYear = 1900; // You can default to any year or make it null.


getWhatever() {
  
  const url = `https://example/api/whatever?Year=${selectedYear}`
  return this.http.get(url);
}  

然后在组件中,将 selectedYear 包装在 getter 和 setter 中。

component.ts

public get selectedYear() {
  return this._service.selectedYear;
}
public set selectedYear(year: number) {
  this._service.selectedYear = year;
}

constructor(
  private readonly _service: myService
){}

最后,使用 HMTL 中的 getter/setter。
component.html

<select [(ngModel)]="selectedYear">
...
</select>

这是演示

You just need to a that selectedYear to your service.

service.ts

public selectedYear = 1900; // You can default to any year or make it null.


getWhatever() {
  
  const url = `https://example/api/whatever?Year=${selectedYear}`
  return this.http.get(url);
}  

Then in the component, wrap the selectedYear in a getter and setter.

component.ts

public get selectedYear() {
  return this._service.selectedYear;
}
public set selectedYear(year: number) {
  this._service.selectedYear = year;
}

constructor(
  private readonly _service: myService
){}

Finally, use the getter/setter in the HMTL.
component.html

<select [(ngModel)]="selectedYear">
...
</select>

Here is the demo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文