Detaillierte Erläuterung der Idee zur Implementierung dynamischer Spalten in AngularJS-Loop-Objekteigenschaften

Detaillierte Erläuterung der Idee zur Implementierung dynamischer Spalten in AngularJS-Loop-Objekteigenschaften

AngularJS-Loop-Objekteigenschaften zum Erreichen dynamischer Spalten

Vorteile: Speichern des Objekts und nur ein Datensatz in der Datenbank

Nachteile: Das Hinzufügen von Objektattributen erfordert eine Änderung der Tabellenstruktur, des Codes und eine anschließende erneute Veröffentlichung

Umsetzungsideen

1) Erstellen Sie Datenbanktabellen (Objekte) und Felder (Objektattribute)

2) Erstellen Sie eine Konfigurationstabelle basierend auf Tabellen (Objekten) und Feldern (Objektattributen).

3) Generieren Sie eine dreischichtige Architektur basierend auf Tabellen (Objekten) und Feldern (Objektattributen).

4) Der Demo-Code lautet wie folgt

1. Schnittstellencode:

mit Microsoft.AspNetCore.Mvc;
verwenden von Microsoft.Extensions.Logging;
mit Newtonsoft.Json;
System verwenden;
mit System.Collections.Generic;
mithilfe von System.Diagnostics;
mit System.Linq;
verwenden von System.Threading.Tasks;
verwenden von WebApplication1.Models;
 
Namespace WebApplication1.Controllers
{
    öffentliche Klasse HomeController: Controller
    {
        öffentlicher IActionResult-Index (Zeichenfolgenobjekttyp)
        {
            ViewBag.objecttype = Objekttyp;
            Ansicht zurückgeben();
        }
        [HttpPost]
        öffentliches JsonResult GetItem(Zeichenfolge Objekttyp)
        {
            wenn (Objekttyp == "Student")
            {
                Studentenelement = neuer Student
                {
                    nein = "S001",
                    Name = "Zhang San",
                    Geschlecht = "Männlich",
                };
                Liste<Spalte> Spalten = neue Liste<Spalte>();
                columns.Add(new Column { columnname = "nein", displaynname="Matrikelnummer" });
                columns.Add(neue Spalte { Spaltenname = "Name", Anzeigename = "Name" });
                columns.Add(new Column { columnname = "Geschlecht", displaynname = "Geschlecht" });
                return Json(neu { Code = "1", msg = "", Element = Element, Spalten = Spalten });
            }
            anders
            {
                Schulartikel = neue Schule
                {
                    nein = "S001",
                    Name = "Zhejiang-Universität",
                    Adresse = "Zhejiang",
                };
                Liste<Spalte> Spalten = neue Liste<Spalte>();
                columns.Add(neue Spalte { Spaltenname = "nein", Anzeigename = "Kodierung" });
                columns.Add(neue Spalte { Spaltenname = "Name", Anzeigename = "Name" });
                columns.Add(neue Spalte { Spaltenname = "Adresse", Anzeigename = "Adresse" });
                return Json(neu { Code = "1", msg = "", Element = Element, Spalten = Spalten });
            }
        }
 
        [HttpPost]
        öffentliches JsonResult SaveItem(Zeichenfolge Objekttyp, Zeichenfolge Elementzeichenfolge)
        {
            wenn (Objekttyp == "Student")
            {
                Studentenelement = JsonConvert.DeserializeObject<Student>(itemstring);
            }
            anders
            {
                Schulelement = JsonConvert.DeserializeObject<Schule>(itemstring);
            }
            return Json(new { ResultCode = "1", ResultMessage = "Erfolgreich gespeichert!" });
        }
    }
    öffentliche Klasse Student
    {
        öffentliche Zeichenfolge nein { abrufen; festlegen; }
        öffentlicher Zeichenfolgenname { abrufen; festlegen; }
        öffentliche Zeichenfolge „Geschlecht“ { abrufen; festlegen;}
    }
    öffentliche Klasse Schule
    {
        öffentliche Zeichenfolge nein { abrufen; festlegen; }
        öffentlicher Zeichenfolgenname { abrufen; festlegen; }
        öffentliche String-Adresse { abrufen; festlegen; }
    }
    öffentliche Klasse Spalte
    { 
        öffentlicher Zeichenfolgenspaltenname { abrufen; festlegen; }
        öffentliche Zeichenfolge Anzeigename { abrufen; festlegen; }
    }
}

2. AngularJS-Frontend-Code

@{
    ViewData["Titel"] = "Homepage";
}
 
<Skripttyp="text/javascript">
    var app = angular.module("meine_app", []);
    app.controller('mein_controller', Funktion ($scope) {
        //Speichern $scope.saveItem = function () {
            var itemstring = JSON.stringify($scope.item)
            $.post('@Url.Action("SaveItem", "Home")', { Objekttyp: '@ViewBag.Objekttyp', Artikelzeichenfolge: Artikelzeichenfolge }, Funktion (Daten) {
 
            });
        }
        //Holen Sie sich $scope.getItem = function () {
            $.post('@Url.Action("GetItem", "Home")', { Objekttyp: '@ViewBag.Objekttyp' }, Funktion (Ergebnis) {
                $scope.item = Ergebnis.item;
                $scope.columns = Ergebnis.columns;
                $scope.$apply();
            });
        }
        $scope.getItem();
    });
</Skript>
<div>
    <ul>
        <li ng-repeat="Spalte in Spalten">
            <span>{{column.displaynname}}</span>
            <input ng-if="item[spalte.spaltenname]&&item[spalte.spaltenname].länge" ng-model="item[spalte.spaltenname]" />
        </li>
    </ul>
    <input type="button" value="Speichern" ng-click="saveItem();" />
</div>

Dies ist das Ende dieses Artikels über die Implementierung dynamischer Spalten durch Schleifen von Objekteigenschaften in AngularJS. Weitere relevante Inhalte zu dynamischen Spalten in AngularJS finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • JavaScript entfernt unnötige Eigenschaften eines Objekts
  • Wenn die Springboot-Post-Schnittstelle JSON akzeptiert und es in ein Objekt konvertiert wird, sind alle Eigenschaften null.
  • Mehrere Möglichkeiten zum einfachen Durchlaufen von Objekteigenschaften in JS
  • So löschen Sie eine Eigenschaft eines Objekts in JavaScript
  • Verwendung der hasOwnProperty-Methode des js-Attributobjekts
  • Die JS-Methode hasOwnProperty() erkennt, ob eine Eigenschaft die eigene Eigenschaft eines Objekts ist.
  • Analysieren der Eigenschaften und Methoden von JavaScript-Datumsobjekten anhand von Beispielen
  • Detaillierte Erläuterung des dynamischen Hinzufügens, Löschens, Änderns und Abfragens von Eigenschaften bei der Konvertierung von Java-Objekten nach JSON
  • Beim Konvertieren eines Objekts in JSON ignoriert Java Jackson eine Eigenschaftsoperation des Unterobjekts
  • Drei Eigenschaften von Javascript-Objekten

<<:  14 Techniken für leistungsstarke Websites

>>:  Lösen Sie das Problem, dass ifconfig im Docker nicht verfügbar ist

Artikel empfehlen

Welche Arten von MySQL-Verbindungsabfragen kennen Sie?

Vorwort Wenn die Abfrageinformationen aus mehrere...

So stellen Sie Dienste in Windows Server 2016 bereit (Grafisches Tutorial)

Einführung Wenn eine große Anzahl an Systemen ins...

So konfigurieren Sie einfach mehrere Server in Nginx

1: Ich werde nicht näher auf die Installation von...

So benennen Sie die Tabelle in MySQL um und worauf Sie achten müssen

Inhaltsverzeichnis 1. Tabellenmethode umbenennen ...

Detaillierte Erläuterung der MySQL-Indexprinzipien und -Optimierung

Vorwort Dieser Artikel wurde von einem hohen Tier...

Win2008 R2 MySQL 5.5 ZIP-Format MySQL-Installation und -Konfiguration

Installation und Konfiguration von MySQL im ZIP-F...

5 Möglichkeiten, Ihre JavaScript-Codebasis sauberer zu machen

Inhaltsverzeichnis 1. Verwenden Sie Standardparam...

Kontext und Eigenschaften von React erklärt

Inhaltsverzeichnis 1. Kontext 1. Anwendungsszenar...

Export- und Importvorgänge für Docker-Images

Was ist, wenn die Basis-Images bereits konfigurie...

Natives JS zum Erzielen eines Schiebeknopfeffekts

Der spezifische Code des mit Js erstellten Schieb...

Implementierung einer einfachen Web-Uhr mit JavaScript

Verwenden Sie JavaScript, um eine Webseitenuhr zu...

Docker erstellt Cluster-MongoDB-Implementierungsschritte

Vorwort Aufgrund der Geschäftsanforderungen des U...