【问题标题】:Two-way data binding doesn't on select field双向数据绑定不在选择字段上
【发布时间】:2016-05-04 11:58:09
【问题描述】:

我的 Angular2(测试版)应用程序中的 2way 数据绑定有问题。 控制台中没有错误,所以很难猜出为什么下面的 sn-p 适用于输入文本字段但不适用于选择字段,有什么想法吗?

{{model.quantity}} 不会在所选项目更改时更新,但 {{model.name}} 会在文本字段中更新。

<div class="form-group">
                    <label>Name</label>
                    <input type="text" class="form-control" 
                    [(ngModel)]="model.name" > {{model.name}} 
                </div>
                <div class="form-group">
                        <label>Quantity</label>
                        <select class="form-control" [(ngModel)]="model.quantity">
                          <option value="1">1</option>
                          <option value="2">2</option>
                          <option value="3">3</option>
                        </select> {{model.quantity}} 
                </div>

另一方面,当我做这样的事情时:

在ts文件中:

 logChange(input:any) {
    console.log('Selected value:',input);
}

在视图模板中:

 <div class="form-group">
                            <label>Quantity</label>
                            <select class="form-control" [(ngModel)]="amount" #amountField (change)="logChange(amountField.value)">
                             <option value="1">1</option>
                             <option value="2">2</option>
                             <option value="3">3</option>
                            </select>
                            {{amount}} 
                    </div>

控制台显示每个更改事件的值。

【问题讨论】:

    标签: angular angular2-forms


    【解决方案1】:

    也许是这个问题中描述的同一个问题:Angular 2: How to get the selected value from different options of a form?

    @Mubashir 在他的回答中提供了一个解决方案...

    希望对你有帮助 蒂埃里

    【讨论】:

    • 谢谢蒂埃里,这是否意味着这是 Angular 2 中的错误?查看 Plunker 代码示例(由 Angular 团队提供),下拉菜单按预期工作...live example&lt;div class="form-group"&gt; &lt;label for="power"&gt;Hero Power&lt;/label&gt; &lt;select class="form-control" required [(ngModel)]="model.power" &gt; &lt;option *ngFor="#p of powers" [value]="p"&gt;{{p}}&lt;/option&gt; &lt;/select&gt; &lt;/div&gt;
    【解决方案2】:

    我认为它有效,它在 Beta.0 上测试过

    考虑一下这个笨蛋:

     <select [(ngModel)]="name"> 
        <option *ngFor="#n of names" [attr.value]="n">{{n}}</option>
      </select>
    

    https://plnkr.co/edit/MMNWGh?p=info

    【讨论】:

    • 谢谢 Vlado,这确实适用于 Beta.0,但恐怕不适用于 Beta.1。
    • beta.1 有很多问题(尤其是 .min 版本)已经有很好的证明。我希望这应该在新版本中起作用,在我看来这似乎是合乎逻辑的。
    猜你喜欢
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多