2016-09-07 13 views
1

私のプロジェクトで角度スキーマ形式を使用していて、モデルに空の配列を追加しようとしています。角度スキーマ形式の空の配列

私は、配列型のスキーマフォームには何も項目が含まれていませんが、実際には配列内の1つのオブジェクトをプッシュしてから表示したと予想しました。

配列の項目を持たない初期化フォームはどうすればできますか?

HTML

<div ng-app="app" ng-controller="Controller as ctr"> 
    <form sf-schema="ctr.schema" sf-form="ctr.form" sf-model="ctr.model"></form> 
    {{ctr.model.comments}} - Where this object come from? This array was empty. Is it possible to keep it empty on load? 
</div> 

JS

var myApp = angular.module('app', ['schemaForm']) 
    .controller("Controller", function() { 
    this.schema = { 
     "type": "object", 
     "title": "Comment", 
     "properties": { 
     "comments": { 
      "type": "array", 
      "items": { 
      "type": "object", 
      "properties": { 
       "name": { 
       "title": "Name", 
       "type": "string" 
       }, 
       "comment": { 
       "title": "Comment", 
       "type": "string", 
       "maxLength": 20, 
       "validationMessage": "Don't be greedy!" 
       } 
      } 
      } 
     } 
     } 
    }; 

    this.form = [{ 
     "key": "comments", 
     "items": [ 
     "comments[]" 
     ] 
    }]; 

    this.model = { 
     comments: [] // Empty array defined 
    }; 
    }); 

Jsfiddle

答えて

1

あなたが探している値は、このオブジェクトと事前移入配列を避けることができますstartEmpty: trueです。

Angular Schema Form: Array Documentation

プレ集団は場合フォーム負荷アレイ内のフォームフィールドが利用可能であることを確実にするためにデフォルト設定されています。 startEmpty: trueの値はこの動作を無効にできます。