最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How does standalone form control in ModelOptions affect form values - Stack Overflow

programmeradmin1浏览0评论
       <div id="resort-data" 
            ngModelGroup="resortData" 
            #resortData="ngModelGroup">
            <div class="row">
                <div class="text">Kod resortowy I:</div>
                <div class="data">
                    <underline-input id="resI" 
                       #resI="ngModel" 
                       [(ngModel)]="thispany.i_kod" 
                       name="resI" placeholder="Kod resortowy I" 
                       [ngModelOptions]="{standalone: true}">
                    </underline-input>
                </div>
            </div>
        </div>

If I use [ngModelOptions]="{standalone: true}" input and

{{f.value | json}}

is displayed that resortData is empty object if i remove [ngModelOptions]="{standalone: true}" that "resortData": { "resI": "valueFromInput" } } form is working and validation also working fine why this is happening ?

       <div id="resort-data" 
            ngModelGroup="resortData" 
            #resortData="ngModelGroup">
            <div class="row">
                <div class="text">Kod resortowy I:</div>
                <div class="data">
                    <underline-input id="resI" 
                       #resI="ngModel" 
                       [(ngModel)]="this.pany.i_kod" 
                       name="resI" placeholder="Kod resortowy I" 
                       [ngModelOptions]="{standalone: true}">
                    </underline-input>
                </div>
            </div>
        </div>

If I use [ngModelOptions]="{standalone: true}" input and

{{f.value | json}}

is displayed that resortData is empty object if i remove [ngModelOptions]="{standalone: true}" that "resortData": { "resI": "valueFromInput" } } form is working and validation also working fine why this is happening ?

Share Improve this question edited Sep 4, 2017 at 11:43 Max Koretskyi 106k68 gold badges353 silver badges516 bronze badges asked Sep 4, 2017 at 11:30 Walter WhiteWalter White 1,0244 gold badges14 silver badges34 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 4

The standalone:true option means that ngModel directive should not register the formControl it creates within the wrapping formGroup. Here is the relevant sources from the ngModel directive:

export class NgModel extends NgControl implements OnChanges,
      ...
      private _setUpControl(): void {
        this._setUpdateStrategy();
        this._isStandalone() ? this._setUpStandalone() :
                               this.formDirective.addControl(this); <--- is not called
        this._registered = true;
      }

Hence if you try to output all form controls here:

{{f.value | json}}

the form doesn't contain the control you pass as standalone.

发布评论

评论列表(0)

  1. 暂无评论