


Angular implements rendering the data filled in the form to the table
This article mainly introduces Angular's method of rendering the data filled in the form to the table. It is of great practical value. Friends who need it can refer to it. I hope it can help everyone.
1. Project Introduction
We will use the Angular framework to make a demo. The functions that this demo will implement are as follows:
Enter information in the X coordinate and Y coordinate text boxes, and then click Add. A corresponding data will appear in the table below. Click the delete button next to each item, and the information will be been deleted!
Because our table data is frequently refreshed, we separate it as a component.
2. Project directory
--------app
----------dataTable(file Clip)
------------dataTable.component.html
------------dataTable.component.css
--------dataTable.component.ts
----------app.component.html
-- --------app.component.css
----------app.component.ts
---------- app.module.ts
3. Code explanation
1.app.component.html
Let’s write the main framework first
<p class="container"> <p class="row"> <form> <p class="form-group"> <label for="exampleInputEmail1">X坐标</label> <input type="text" class="form-control" id="exampleInputEmail1" placeholder="xcood" name="xcood"> </p> <p class="form-group"> <label for="exampleInputPassword1">Y坐标</label> <input type="text" class="form-control" id="exampleInputPassword1" placeholder="ycood" name="ycood"> </p> <button type="button" class="btn btn-default" (click)="additem()">添加</button> </form> </p> <p class="row"> <data-table [array]="addArray"></data-table><!--导入dataTable组件,并且将父组件里面的form表单数据传递给子组件渲染--> </p> </p>
ngx-bootstrap is used here. At the end of the article, we will explain how to import this thing.
2.app.component.ts
We need to use an additem() method to add functionality to the parent component
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { addArray=[]; xcood: any; ycood: any; additem(){ this.xcood = (document.getElementsByName('xcood')[0] as HTMLInputElement).value; this.ycood = (document.getElementsByName('ycood')[0] as HTMLInputElement).value; this.addArray.push({ xcood:this.xcood, ycood:this.ycood }) } }
Here, if we do not define
xcood: any;
ycood: any;
, then the following error will occur
If we initialize them directly without declaring them, something will definitely go wrong. One thing to remember is that for any variable to be used, you must first declare it and then initialize it.
In the additem() function, we need to initialize these two variables. Remember to use this, otherwise the variables declared in the global scope will not be obtained. Because we click the add button to get the data in the form, so logically we have to put the acquisition steps in the additem() function. There is also a new way of writing here, because before I directly used
this.xcood = document.getElementsByName('xcood')[0].value; and could not get the data,
So I looked it up online and replaced it with the writing method above.
We declared an addArray array at the beginning. This array will store data objects one by one. The obtained data will be pushed to this array every time it is called in the additem() function.
Next we need to receive this array in the subcomponent and render it to the table.
3.dataTable.component.html
<table class="table table-striped"> <thead> <tr> <th>X坐标</th> <th>Y坐标</th> <th>操作</th> </tr> </thead> <tbody *ngIf="array.length!==0"><!--这里我们判断一下传递过来的数组是否为空,如果是空的话我们就没有必要渲染出来了--> <tr *ngFor="let data of array"> <td>{{data.xcood}}</td> <td>{{data.ycood}}</td> <td><button type="button" class="btn btn-default" (click)="delete(data)">删除</button></td> </tr> </tbody> </table>
4.dataTable.component.ts
import { Component,Input } from '@angular/core'; @Component({ selector: 'data-table', templateUrl: './dataTable.component.html', styleUrls: ['./dataTable.component.css'] }) export class DataTableComponent { @Input() array:any;//接收父组件传递过来的addArray数组 index: number; //跟上面说的一样要先声明 delete(data){ this.index = this.array.indexOf(data); if (this.index > -1) { this.array.splice(this.index, 1);//跟上面说的一样在初始化的时候要用到this } } }
Next we write logic for the function delete() of the delete button. The effect we want is to delete whichever item is clicked, so we need to first obtain the data object you want to delete, and then pass it to the parent component. Find the position of this data object in the array, and then delete it using the splice() function.
5.app.module.ts
Remember to register your new dataTable component in app.module.ts
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DataTableComponent } from './dataTable/dataTable.component'; @NgModule({ declarations: [ AppComponent, DataTableComponent ], imports: [ BrowserModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
4. Import of ngx-bootstrap
In fact, it is very simple. You need to enter cnpm install ngx-bootstrap --save in cmd first to install the module in the current directory
Then add
to the final export html file of the project. Copy the code. The code is as follows:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
Finally, it can be used directly when you write styles.
Related recommendations:
Basic methods for implementing react server rendering
Vue.js and ASP.NET Core Server-side rendering function
react back-end rendering template engine noox release usage method
The above is the detailed content of Angular implements rendering the data filled in the form to the table. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



DDREASE is a tool for recovering data from file or block devices such as hard drives, SSDs, RAM disks, CDs, DVDs and USB storage devices. It copies data from one block device to another, leaving corrupted data blocks behind and moving only good data blocks. ddreasue is a powerful recovery tool that is fully automated as it does not require any interference during recovery operations. Additionally, thanks to the ddasue map file, it can be stopped and resumed at any time. Other key features of DDREASE are as follows: It does not overwrite recovered data but fills the gaps in case of iterative recovery. However, it can be truncated if the tool is instructed to do so explicitly. Recover data from multiple files or blocks to a single

0.What does this article do? We propose DepthFM: a versatile and fast state-of-the-art generative monocular depth estimation model. In addition to traditional depth estimation tasks, DepthFM also demonstrates state-of-the-art capabilities in downstream tasks such as depth inpainting. DepthFM is efficient and can synthesize depth maps within a few inference steps. Let’s read about this work together ~ 1. Paper information title: DepthFM: FastMonocularDepthEstimationwithFlowMatching Author: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

If you need to know how to use filtering with multiple criteria in Excel, the following tutorial will guide you through the steps to ensure you can filter and sort your data effectively. Excel's filtering function is very powerful and can help you extract the information you need from large amounts of data. This function can filter data according to the conditions you set and display only the parts that meet the conditions, making data management more efficient. By using the filter function, you can quickly find target data, saving time in finding and organizing data. This function can not only be applied to simple data lists, but can also be filtered based on multiple conditions to help you locate the information you need more accurately. Overall, Excel’s filtering function is a very practical

The performance of JAX, promoted by Google, has surpassed that of Pytorch and TensorFlow in recent benchmark tests, ranking first in 7 indicators. And the test was not done on the TPU with the best JAX performance. Although among developers, Pytorch is still more popular than Tensorflow. But in the future, perhaps more large models will be trained and run based on the JAX platform. Models Recently, the Keras team benchmarked three backends (TensorFlow, JAX, PyTorch) with the native PyTorch implementation and Keras2 with TensorFlow. First, they select a set of mainstream

Angular.js is a freely accessible JavaScript platform for creating dynamic applications. It allows you to express various aspects of your application quickly and clearly by extending the syntax of HTML as a template language. Angular.js provides a range of tools to help you write, update and test your code. Additionally, it provides many features such as routing and form management. This guide will discuss how to install Angular on Ubuntu24. First, you need to install Node.js. Node.js is a JavaScript running environment based on the ChromeV8 engine that allows you to run JavaScript code on the server side. To be in Ub

Facing lag, slow mobile data connection on iPhone? Typically, the strength of cellular internet on your phone depends on several factors such as region, cellular network type, roaming type, etc. There are some things you can do to get a faster, more reliable cellular Internet connection. Fix 1 – Force Restart iPhone Sometimes, force restarting your device just resets a lot of things, including the cellular connection. Step 1 – Just press the volume up key once and release. Next, press the Volume Down key and release it again. Step 2 – The next part of the process is to hold the button on the right side. Let the iPhone finish restarting. Enable cellular data and check network speed. Check again Fix 2 – Change data mode While 5G offers better network speeds, it works better when the signal is weaker

I cry to death. The world is madly building big models. The data on the Internet is not enough. It is not enough at all. The training model looks like "The Hunger Games", and AI researchers around the world are worrying about how to feed these data voracious eaters. This problem is particularly prominent in multi-modal tasks. At a time when nothing could be done, a start-up team from the Department of Renmin University of China used its own new model to become the first in China to make "model-generated data feed itself" a reality. Moreover, it is a two-pronged approach on the understanding side and the generation side. Both sides can generate high-quality, multi-modal new data and provide data feedback to the model itself. What is a model? Awaker 1.0, a large multi-modal model that just appeared on the Zhongguancun Forum. Who is the team? Sophon engine. Founded by Gao Yizhao, a doctoral student at Renmin University’s Hillhouse School of Artificial Intelligence.

Recently, the military circle has been overwhelmed by the news: US military fighter jets can now complete fully automatic air combat using AI. Yes, just recently, the US military’s AI fighter jet was made public for the first time and the mystery was unveiled. The full name of this fighter is the Variable Stability Simulator Test Aircraft (VISTA). It was personally flown by the Secretary of the US Air Force to simulate a one-on-one air battle. On May 2, U.S. Air Force Secretary Frank Kendall took off in an X-62AVISTA at Edwards Air Force Base. Note that during the one-hour flight, all flight actions were completed autonomously by AI! Kendall said - "For the past few decades, we have been thinking about the unlimited potential of autonomous air-to-air combat, but it has always seemed out of reach." However now,
