Javascript 在Angular 8中使用put调用更新本地JSON文件的单个属性
我想更新我放在资产文件夹中的JSON文件,因此如果我只更新JSON对象的一个属性,那么它应该只更新该属性,而不影响任何其他属性值: 让示例代码为: loginInterface.tsJavascript 在Angular 8中使用put调用更新本地JSON文件的单个属性,javascript,angular,typescript,angular-httpclient,Javascript,Angular,Typescript,Angular Httpclient,我想更新我放在资产文件夹中的JSON文件,因此如果我只更新JSON对象的一个属性,那么它应该只更新该属性,而不影响任何其他属性值: 让示例代码为: loginInterface.ts export interface loginModel { Email: string; Password: string; } login.component.ts import { Component, OnInit } from '@angular/core'; import { Obser
export interface loginModel {
Email: string;
Password: string;
}
login.component.ts
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { HttpClient } from '@angular/common/http'
import { loginModel } from './loginModel'
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
private _jsonURL = 'assets/Login.json';
private login: Array<loginModel>;
constructor(
private http: HttpClient) {
this.login = new Array<loginModel>();
}
ngOnInit() {
this.getLoginData();
}
getLoginData() {
this.http.get<loginModel[]>(this._jsonURL).subscribe(data => {
this.login = data;
console.log(this.login);
return this.login;
});
}
UpdateLoginData() {
// How to proceed on this one??
}
}
从'@angular/core'导入{Component,OnInit};
从“rxjs”导入{Observable};
从“@angular/common/http”导入{HttpClient}
从“/loginModel”导入{loginModel}
@组成部分({
选择器:“应用程序登录”,
templateUrl:'./login.component.html',
样式URL:['./login.component.css']
})
导出类LoginComponent实现OnInit{
private _jsonURL='assets/Login.json';
私有登录:数组;
建造师(
专用http:HttpClient){
this.login=新数组();
}
恩戈尼尼特(){
这是getloginda();
}
GetLoginda(){
this.http.get(this.\u jsonURL).subscribe(数据=>{
this.login=数据;
console.log(this.login);
返回此.login;
});
}
UpdateLoginData(){
//如何处理这一问题??
}
}
login.component.html
<div *ngFor = "let log of login">
{{log.Email}}
<input [ngModel]="log.Password">
</div>
<button (click)="UpdateLoginData()">Update</button>
{{log.Email}
更新
这只是一个例子
因此,如果我在一个地方更改密码并单击“更新”按钮,那么它应该只更新该特定电子邮件的密码,我不想为了更新单个值而用新的JSON对象替换整个文件,这是可能的吗?您不能通过angular直接更改JSON文件的内容,您需要后端来反映JSON文件上的更改。否!不能使用“角度”更改文件的内容。它是一个文件I/O操作,由具有文件系统API的后端框架/语言(例如Node.JS)处理。您可以创建一个RESTful API来修改文件内容,并从Angular发出HTTP调用。仅使用Angular框架无法执行任何文件操作。您需要服务器端实现来实现这一点。如果您不熟悉服务器端编程,可以尝试使用内存中的angular数据库api
@aamanpurohit您能告诉我如何使用node.js创建动态内容文件吗?@Darshana此线程将对您有用@aamanpurohit谢谢您的回复。很抱歉给您带来不便,但您能告诉我如何在运行时使用http调用将此动态数据加载到angular本地文件中吗?您是否找到了用新的JSON对象替换整个文件的方法?您能告诉我如何使用后端调用更新本地JSON吗?您能告诉我是否只能在开发时使用此插件吗。如果我在生产中使用,会不会造成麻烦?@Darshana你肯定可以使用这个插件进行开发。但请记住,如果您将其用于生产,您的数据库将不安全,并且无法将大型数据集存储到内存中的web api中。内存中web api只是为了模拟后端REST api。