解決された主な問題1. Vue はループ時に異なる v-model を動的にバインドする必要があります。Vue の動的フォームにデータをバインドするにはどうすればよいでしょうか? 2. 動的フォームの名前属性に対応するすべてのキーと値のペアがバックエンドに送信されます。 1. バックエンドから返され、バックエンドに送信されるデータは、次の形式になります。// バックエンドから返されたデータは、戻り値の型に応じて対応するコンポーネントで使用されます [ { "コンポーネントタイプ": "入力", "コンポーネント名": "ユーザー名", "required": "1", // 送信時に入力が必須かどうか "name": "名前", }, { "コンポーネントタイプ": "ラジオ", "コンポーネント名": "性別", "必須": "1", "名前": "性別", 「オプション」: [ { "名前": "男性", "値": "0000" }, { "名前": "女性", "値": "1111" } ] } ] // サーバーに送信されるデータ形式 { ユーザー名: '私の名前', sex: '0000' // 「男性」に相当 } 2. Vue フロントエンド コードは次のとおりです。<テンプレート> <div class="ページコンテナ"> <div class="dynamic-content"> <div v-for="(item,idx) in infoList" :key="idx"> <input class="common-input" v-model="modelItems[idx]" v-if="item.componentType=='input'"> <van-radio-group v-model="modelItems[idx]" direction="horizontal" v-if="item.componentType=='radio'"> <van-radio :name="itemRadio.value" v-for="item.options 内のitemRadio" :key="itemRadio.value"> {{itemRadio.name}} </バンラジオ> </バンラジオグループ> </div> <div class="common-btn" @click="clickSubmit">データを送信</div> </div> </div> </テンプレート> <スクリプト> 'vue' から Vue をインポートします '@/api/home' から { getListData } をインポートします。 'vant' から { RadioGroup, Radio } をインポートします。 Vue.use(ラジオ).use(ラジオグループ) エクスポートデフォルト{ データ() { 戻る { modelItems: {}, // Vue はループ時に異なる v-model を動的にバインドする必要があります 情報リスト: [] } }, マウント() { this.formKeyArr = [] このリストを取得する() }, メソッド: { getList() { リストデータを取得する() .then((res) => { 定数 infoListData = res.infoList this.infoList = 情報リストデータ infoListData.forEach((アイテム、インデックス) => { // 属性名とそれが必須かどうかを保存します。これは、後続のデータ送信に使用されます // { name: 'username', type: 1 }, { name: 'sex', type: 1} this.formKeyArr.push({ 名前: item.componentName、 タイプ: item.required }) }) }) .catch(() => { }) }, クリック送信() { const postParams = {} // 送信されたデータ let isCanSubmit = true this.formKeyArr.forEach((item, index) => { console.log('item=', アイテム) if (item.type === '1' && !this.modelItems[index]) { // すべて必須タグ // 最初にフォームに記入してください。トーストフォームを完全に記入してください isCanSubmit = false } postParams[item['name']] = this.modelItems[index] }) if (isCanSubmit) { //データを送信できます //送信されたフォームデータを取得できます //{ username: 'my name', sex: '0000' //「男性」に相当 } コンソールログ('postParams=', postParams) } } } } </スクリプト> <スタイル lang="scss"> </スタイル> 要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: HTML_PowerNode Java アカデミーでテーブルを動的に追加する
>>: MySQL で 1000 万件のレコードをすばやくクエリする方法
translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...
MySQLはインストール時に設定できますが、それより低いバージョンは設定できないようで、インストール...
1. レジストリについて公式 Docker ハブは、パブリックイメージを管理するのに適した場所です。...
MySQLデータベース設計の8つの最適化方法の詳細は次のとおりです。 1. 最も適切なフィールド属性...
世界最高のビジュアル デザイン スキルを持っていたとしても、訪問者がページ間やアイテム間を快適に移...
目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...
URL: http://hostname.com/contextPath/servletPath/p...
Linux ファイルシステム一般的なハードディスクは上図のとおりです。各ディスクは複数のトラックに分...
ウェブサイトのさまざまな HTML ドキュメントはハイパーリンクを通じて相互に接続され、一貫性のある...
MYSQL 5.6 スレーブレプリケーションの展開と監視MYSQL 5.6 のインストールと展開 #...
マクロタスクとマイクロタスクJavaScript はシングルスレッド言語です (マルチスレッドの場合...
目次SaltstackがZabbixサービスを導入httpd、mysql、phpをインストールするh...
最初に書くこの記事では、ELK 7.3.0 の展開についてのみ説明します。展開環境:システムセントO...
この記事では、JavaScript Canvasで三目並べゲームを実装するための具体的なコードを参考...
MySQL 8.0.25解凍版のインストールチュートリアル、参考までに具体的な内容は以下のとおりです...