AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明

AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明

動的な列を実現するための Angularjs ループ オブジェクト プロパティ

利点: オブジェクトを保存し、データベースに1つのデータのみを保存します

デメリット: オブジェクト属性を追加するには、テーブル構造とコードを変更し、再公開する必要があります。

実装のアイデア

1) データベーステーブル(オブジェクト)とフィールド(オブジェクト属性)を作成する

2) テーブル(オブジェクト)とフィールド(オブジェクト属性)に基づいて構成テーブルを生成する

3) テーブル(オブジェクト)とフィールド(オブジェクト属性)に基づいて3層アーキテクチャを生成する

4) デモコードは次のとおりです

1. インターフェースコード:

Microsoft.AspNetCore.Mvc を使用します。
Microsoft.Extensions.Logging を使用します。
Newtonsoft.Json を使用します。
システムの使用;
System.Collections.Generic を使用します。
System.Diagnostics を使用します。
System.Linq を使用します。
System.Threading.Tasks を使用します。
WebApplication1.Models を使用します。
 
名前空間 WebApplication1.Controllers
{
    パブリッククラス HomeController: コントローラ
    {
        パブリック IActionResult Index(文字列オブジェクトタイプ)
        {
            ViewBag.objecttype = オブジェクトタイプ;
            View() を返します。
        }
        [HttpPost]
        パブリック JsonResult GetItem(文字列オブジェクトタイプ)
        {
            if (オブジェクトタイプ == "学生")
            {
                学生アイテム = 新しい学生
                {
                    いいえ = "S001",
                    名前 = "張三"、
                    性別 = "男性"、
                };
                リスト<列> columns = 新しいリスト<列>();
                columns.Add(新しい列 { columnname = "no", displaynname="学生番号" });
                columns.Add(新しい列 { columnname = "name", displaynname = "name" });
                columns.Add(新しい列 { columnname = "性別", displaynname = "性別" });
                Json を返します (新しい { code = "1", msg = "", item = item, columns = columns });
            }
            それ以外
            {
                学校アイテム = 新しい学校
                {
                    いいえ = "S001",
                    名前 = "浙江大学",
                    住所 = "浙江省"、
                };
                リスト<列> columns = 新しいリスト<列>();
                columns.Add(新しい列 { columnname = "no", displaynname = "encoding" });
                columns.Add(新しい列 { columnname = "name", displaynname = "name" });
                columns.Add(新しい列 { columnname = "address", displaynname = "address" });
                Json を返します (新しい { code = "1", msg = "", item = item, columns = columns });
            }
        }
 
        [HttpPost]
        パブリック JsonResult SaveItem(文字列オブジェクトタイプ、文字列項目文字列)
        {
            if (オブジェクトタイプ == "学生")
            {
                学生アイテム = JsonConvert.DeserializeObject<Student>(itemstring);
            }
            それ以外
            {
                学校項目 = JsonConvert.DeserializeObject<School>(itemstring);
            }
            return Json(new { ResultCode = "1", ResultMessage = "正常に保存されました!" });
        }
    }
    パブリッククラス 学生
    {
        パブリック文字列 no { get; set; }
        パブリック文字列名 { 取得; 設定; }
        パブリック文字列性別{取得;設定;}
    }
    公立学校
    {
        パブリック文字列 no { get; set; }
        パブリック文字列名 { 取得; 設定; }
        パブリック文字列アドレス { 取得; 設定; }
    }
    パブリッククラス Column
    { 
        パブリック文字列列名 { 取得; 設定; }
        パブリック文字列 displaynname { 取得; 設定; }
    }
}

2. AngularJS フロントエンドコード

@{
    ViewData["タイトル"] = "ホームページ";
}
 
<script type="text/javascript">
    var app = angular.module("my_app", []);
    app.controller('my_controller', 関数($scope) {
        //保存 $scope.saveItem = function () {
            var itemstring = JSON.stringify($scope.item)
            $.post('@Url.Action("SaveItem", "Home")', { objecttype: '@ViewBag.objecttype', itemstring: itemstring }, function (data) {
 
            });
        }
        //取得 $scope.getItem = function () {
            $.post('@Url.Action("GetItem", "Home")', { オブジェクトタイプ: '@ViewBag.objecttype' }, 関数 (結果) {
                スコープ内のアイテムを結果アイテムに変換します。
                $scope.columns = 結果.columns;
                $スコープを適用します。
            });
        }
        スコープを取得します。
    });
</スクリプト>
<div>
    <ul>
        <li ng-repeat="列内の列">
            <span>{{列.表示名}}</span>
            <input ng-if="item[column.columnname]&&item[column.columnname].length" ng-model="item[column.columnname]" />
        </li>
    </ul>
    <input type="button" value="保存" ng-click="saveItem();" />
</div>

これで、AngularJS でオブジェクト プロパティをループして動的列を実装する方法に関するこの記事は終了です。AngularJS の動的列に関する関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScriptはオブジェクトの不要なプロパティを削除します
  • springboot post インターフェースが json を受け入れる場合、それがオブジェクトに変換されると、プロパティはすべて null になります。
  • JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法
  • JavaScript でオブジェクトのプロパティを削除する方法
  • js 属性オブジェクトの hasOwnProperty メソッドの使用
  • JS hasOwnProperty() メソッドは、プロパティがオブジェクト自身のプロパティであるかどうかを検出します。
  • 例を通して JavaScript の Date オブジェクトのプロパティとメソッドを解析する
  • Java オブジェクトを JSON に変換する際のプロパティの動的な追加、削除、変更、クエリの詳細な説明
  • オブジェクトをJSONに変換する場合、Java jacksonはサブオブジェクトのプロパティ操作を無視します。
  • JavaScript オブジェクトの 3 つのプロパティ

<<:  高性能なウェブサイトのための14のテクニック

>>:  dockerでifconfigが利用できない問題を解決する

推薦する

MySQL マルチバージョン同時実行制御 MVCC の詳細な研究

MVCC MVCC (Multi-Version Concurrency Control) は、マル...

MySQL データベースの詳細な説明 (Ubuntu 14.0.4 LTS 64 ビットベース)

1. MySQLデータベースの構成と関連概念まず、MySQL はリレーショナル データベースである...

MySQL エラー: ロックを取得しようとしたときにデッドロックが見つかりました。トランザクションの解決策を再起動してください

問題を見つける最近、以前のデータを入力していたときに、プログラムが突然次のエラーを報告しました。 [...

Nginx リバース プロキシ構成の完全なプロセス記録

1. 準備LinuxシステムにTomcatをインストールし、デフォルトのポート8080を使用してTo...

Apache POIの基本的な使い方の詳しい説明

目次基本的な紹介入門テスト (Excel ファイルからのデータの読み取り)ステップ1: Maven座...

CentOS 7 で grub パスワードと単一ユーザー ログインを設定するサンプル コード

Centos7 と Centos6 では、GRUB パスワードの設定手順に大きな違いがあります。これ...

CSS 完全な視差スクロール効果

1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...

Ubuntu 20.04 ベスト設定ガイド (初心者向け)

1. システム構成1. sudoパスワードをオフにするsudo コマンドを使用するたびにパスワード...

CSS の複数行テキストがオーバーフローする場合の省略記号の例

複数行のテキストがオーバーフローすると省略記号が表示されますこの記事では 2 つの方法を推奨します。...

mysql 基本操作文コマンドの詳細な説明

1. MySQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

MySQL 5.7 に組み込まれているストレス テストの mysqlslap コマンドと構文の詳細な説明

序文mysqlslap は、MySQL サーバーへのクライアント負荷をシミュレートし、各ステージの時...

DHTML オブジェクト (さまざまな HTML オブジェクトの共通プロパティ)

!DOCTYPE HTML ドキュメントが準拠するドキュメント型定義 (DTD) を指定します。 ...

MySQLプロセス関数の一般的な使用例の分析

この記事では、例を使用して MySQL プロセス関数の一般的な使用方法を説明します。ご参考までに、詳...

MySQL データベースの最適化に関する 9 つのヒント

目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...