我想知道如何对数组变量进行双向数据绑定。我想在输入字段中检索它们并能够对其进行修改。但是我不知道如何使用数组。
如果我来找你,是因为我做了很多研究,但我没有解决问题。我读了文件angular.io,但也没有帮助
import { Component, OnInit, Input } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { componentsServices } from '../../services/microGrid.service';
import { Asset } from '../../models/assets';
import { FormGroup } from '@angular/forms';
import { CardsService } from '../dashboard/card/cards.service';
import { Network, DataSet, Node, Edge, IdType } from 'vis';
import { ASSETS } from '../../models/mock-assets';
declare var vis
@Component({
selector: 'app-micro-grid-management',
templateUrl: './micro-grid-management.component.html',
styleUrls: ['./micro-grid-management.component.css']
})
export class MicroGridManagement implements OnInit {
@Input('asset') asset: Asset;
assets: Asset[];
constructor(private router: Router, private route: ActivatedRoute, private cardService: CardsService, private assetService: componentsServices) { }
public network: Network;
selectedIndex;
ngOnInit() {
let nodes = [];
let edges = [];
console.log(ASSETS)
this.getAssets();
nodes = ASSETS;
edges = [
{ from: 1, to: 2, arrows: "to" },
{ from: 2, to: 3, arrows: "to" },
{ from: 3, to: 4, arrows: "to" },
{ from: 4, to: 5, arrows: "to" },
{ from: 5, to: 6, arrows: "to" },
{ from: 6, to: 7, arrows: "to" },
{ from: 8, to: 9, arrows: "to" },
{ from: 9, to: 1, arrows: "to" },
]
let data = {
nodes: nodes,
edges: edges,
};
var myDiv = document.getElementById("network");
var options = {
interaction: { hover: true },
nodes: {
shadow: true,
shape: 'square'
},
edges: { shadow: true },
};
var net = new vis.Network(myDiv, data, options);
getAssets(): void {
this.assetService.getAssets()
.subscribe(data => this.assets = data.slice(1,5));
}
}
我知道这不是要走的路,这就是为什么我需要您的帮助。 我想知道我在做什么错
<div *ngFor="let asset of assets">
<input [(ngModel)]="Assets" value="{{asset.label}}">
</div>
这是我使用的模型,但是我还将在输入中显示该模型以进行双向数据绑定。我读了很多东西,但无法解决问题。我的字段输入为空
export interface Asset {
id: number;
label: string;
color: string;
shape: string;
currentP: string;
energy: string;
setpp: string;
energy2: string;
currentq: string;
setq: string;
required: boolean;
}
import { Asset } from './assets';
export const ASSETS: Asset[] = [
{
id: 1,
label: 'PV Panels',
shape: 'square',
color:'#4286f4',
currentP: '100',
energy: 'kW',
setpp: '100',
currentq: '2',
energy2: 'kVar',
setq: '2',
required: true
},
{
id: 2,
label: 'Wind Turbines',
shape: 'square',
color:'#4286f4',
currentP: '100',
energy: 'kW',
setpp: '100',
currentq: '2',
energy2: 'kVar',
setq: '2',
required: true
},
{
id: 3,
label: 'Gensets',
shape: 'square',
color: '#f4d041',
currentP: '100',
energy: 'kW',
setpp: '100',
currentq: '2',
energy2: 'kVar',
setq: '2',
required: true
}
];
答案 0 :(得分:0)
可以这么简单吗?
<div *ngFor="let asset of assets; let i = index">
<input (change)="onChange($event, i)">
</div>
在您的ts文件中:
onChange($event, i) {
this.yourArray[i].value = $event.target.value;
}
该示例仅用于快速周转,您应该为解决方案考虑不变的方法。