angular - 使用输入表单Angular更新服务变量?
问题描述
我想更新 Angular 服务中的一个变量。当我单击按钮时,我想用输入表单更新变量。
这是服务
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class DashService {
input: number = 0; //Varible that need update
constructor(private http: HttpClient) { }
public getVar() {
return this.input;
}
public insertData(data) {
this.input = data
}
}
这是组件
import { DashService } from './dash.service';
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(private service: DashService) { }
ngOnInit() {
console.log( this.service.getVar())
}
}
这是组件 Html
<form (submit)="onSubmit(input)">
<div class="form-group">
<label>Age</label>
<input type="numer" class="form-control" [(ngModel)]="age" age="age">
</div>
<input type="submit" class="btn btn-success" value="Submit">
</form>
解决方案
这应该有效。
服务
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
@Injectable()
export class DashService {
input = new BehaviorSubject('test');; //Varible that need update
constructor(private http: HttpClient) { }
public getVar() {
return this.input.asObservable();
}
public insertData(data) {
this.input.next(data);
}
}
零件
export class AppComponent {
public age = '';
constructor(public service: DashService) { }
ngOnInit() {
this.service.getVar().subscribe((data) => {
console.log(data);
} )
}
onSubmit() {
this.service.insertData(this.age);
}
}
html
<form (submit)="onSubmit()">
<div class="form-group">
<label>Age</label>
<input type="numer" class="form-control" [(ngModel)]="age" age="age">
</div>
<input type="submit" class="btn btn-success" value="Submit">
</form>
推荐阅读
- java - 在java中如何选择最接近的匹配字符串
- java - 我如何在 android studio 的 Json 解析器中添加一些条件
- python - 如何模拟`s3fs.FileSystem().glob`?
- javascript - 根据 Vue 中的数据更改表格单元格的背景
- http - 通过浏览器的 HTTP 消息
- c - 如何将二维数组从函数返回到主函数,并将其保存在另一个数组中?
- sql - 如何使用 oracle 在返回查询的最后一个值中添加 30 分钟?
- string - 将可变长度数组从 csv 解析为 struct
- spring-boot - Spring Boot 微服务应用的跟踪
- angular - 使用 JWT 安全下载大文件