私はモーダルフォームを作成しようとしています。このフォームのいくつかのフィールドは標準であり、このフィールドのいくつかはカスタムであり、API要求から来ています。カスタムフィールドのフォームなし未定義角度ng-repeatの 'key'プロパティを設定できません
{
"model": {
"eventTypeId": 1,
"occuredDate": "2016-08-16T19:58:00.965+0000",
"categories": []
},
"fields": [
{
"key": "siteId",
"type": "input",
"templateOptions": {
"label": "Site Id",
"placeholder": "Site Id"
}
},
{
"key": "patientId",
"type": "input",
"templateOptions": {
"label": "Patient Id"
}
},
{
"key": "visitNumber",
"type": "select",
"templateOptions": {
"label": "Visit Number",
"options": [
{
"name": "Screening",
"value": "Screening"
},
{
"name": " Period 1 Day 0",
"value": " Period 1 Day 0"
},
{
"name": " Period 1 Day 2",
"value": " Period 1 Day 2"
},
{
"name": " Period 2 Day 0",
"value": " Period 2 Day 0"
},
{
"name": " Period 2 Day 2",
"value": " Period 2 Day 2"
},
{
"name": " Period 3 Day 0",
"value": " Period 3 Day 0"
},
{
"name": " Period 3 Day 2",
"value": " Period 3 Day 2"
},
{
"name": " Period 4 Day 0",
"value": " Period 4 Day 0"
},
{
"name": " Period 4 Day 2",
"value": " Period 4 Day 2"
},
{
"name": "Unscheduled",
"value": "Unscheduled Visit"
}
]
}
},
{
"key": "sourceSystemRecordId",
"type": "input",
"templateOptions": {
"label": "System Record Id",
"placeholder": "Source System Record Id"
}
}
]
}
は素晴らしい作品、私はすべてのフィールドを埋めることができ、それがポストされます、しかし私は、カスタムフィールドを埋めるためにしようと、私は、カスタムフィールドのルックスのためのエラー
TypeError: Cannot set property 'key' of undefined
テンプレートを取得以下のような:
私は私のポストオブジェクトは(基準フィールドを除く)のように見えたことを達成しようとしている何<div class="row">
<div class="col-md-4" ng-repeat="(key, value) in vfields">
<div ng-if="vfields[key].type == 'input'">
<div class="form-group">
<label for="fieldId">{{vfields[key].templateOptions.label}}</label>
<input type="text"
class="form-control"
id="fieldId"
placeholder="{{vfields[key].templateOptions.placeholder}}"
ng-model="vmodel.vfields[key].key"
>
</div>
</div>
<div ng-if="vfields[key].type == 'select'">
<div class="form-group">
<label for="fieldId">{{vfields[key].templateOptions.label}}</label>
<select class="form-control"
id="fieldId"
ng-options="item.value as item.name for item in vfields[key].templateOptions.options"
ng-model="vmodel.vfields[key].key">
</select>
</div>
</div>
</div>
</div>
:
object = {
title = text,
description = text,
vfields[key].key = some text or option value (for each custom fields)
}
これは私のエラーと私のplunkerです、誰かが私の問題を見つけるのを助けることができれば感謝します。
おかげで、内部の単純な配列、
(key, value)
を使用して何の必要がないとの契約を持っています働くプランカ – antonyboom