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 をデプロイするときに発生する「テーブル mysql.plugin が存在しません」という問題の解決方法

今日、MySQL の無料インストール版をデプロイしたところ、テーブル 'mysql.plug...

Nginx Rewrite の使用シナリオとコード例の詳細な説明

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

Mysql Explainコマンドの使用と分析

mysql explain コマンドは、MySQL がインデックスを使用して選択ステートメントを処理...

Vue-cliに基づくコードセットは複数のプロジェクトをサポートします

目次アプリケーションシナリオアイデアプロジェクト構造全体的なプロジェクト構造webpack パッケー...

HTML埋め込みタグの使用方法と属性の詳細な説明

1. 基本的な文法コードをコピーコードは次のとおりです。埋め込み src=url注: 埋め込みはさま...

CentOS システムのディスク パーティションを拡張する方法

問題/障害/シナリオ/要件Eve-ng の仮想マシン OVA のハードディスクは 38G しかないた...

Node.js で簡単なクローラーケースを作成するチュートリアル

準備まず、nodejs をダウンロードする必要がありますが、これは問題ないはずです。原文はwebst...

CSS で波の効果を作成するためのアイデア

以前、純粋な CSS を使用して波の効果を実現する方法をいくつか紹介しました。それらについては、次の...

CentOS 8.4 に Docker をインストールする詳細なチュートリアル

目次序文:システム要件:インストール環境:古いバージョンをアンインストールします: yum は具体的...

JSはタイムラインの自動再生を実現する

最近、次のような効果を実装しました。再生ボタンをクリックするとタイムラインの再生が開始され、一時停止...

CentOS7 カーネル カーネル5.0 バージョンアップグレード

アップグレードプロセス:元のシステム: CentOS7.3 [root@my-e450 ~]# un...

Linux ディスク領域解放問題の概要

IDC のサーバーの /partition 使用率がいっぱいです。 100% に到達しました!確認し...

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

nginx の http リクエスト処理の各段階の詳細な分析

nginx の HTTP モジュールを作成する場合、リクエスト開始時のアクセス許可の有無、コンテンツ...

Truncate Table の使用法の説明

テーブルを切り捨てる個々の行の削除をログに記録せずに、テーブル内のすべての行を削除します。文法 テー...