在Angular 7中无法获得选择的价值

Posted

技术标签:

【中文标题】在Angular 7中无法获得选择的价值【英文标题】:Can't get value of select in Angular 7 【发布时间】:2019-04-22 23:55:06 【问题描述】:

这是我的html

<form class="row" (ngSubmit)="generatePdfFromOverview()" #generatePdfForm="ngForm">
    <select id="selectedSortOnItem" required [(ngModel)]="generatePdfForm.selectedSortOnItem"
        name="selectedSortOnItem" #selectedSortOnItem="ngModel">
            <option *ngFor="let sortOnItem of sortOnItems" [value]="sortOnItem">sortOnItem</option>
    </select>
    <button type="submit" class="btn btn-primary">Generate it!</button>
</form>

值在视图中显示良好。

但是,当我选择另一个值时,.ts 文件中的值不会更新。 尝试了很多东西。遵循 Angular 文档中的示例,但似乎不起作用..

【问题讨论】:

看看这个问题,和你的问题差不多:***.com/questions/46447459/… 更改你的模板变量名并检查 【参考方案1】:

虽然这完全取决于您的 generatePdfFromOverview 方法,但您可以采取一些措施来解决此问题:

generatePdfForm 作为参数传递给generatePdfFromOverview,然后使用value 属性获取表单的值。

<form 
  class="row" 
  (ngSubmit)="generatePdfFromOverview(generatePdfForm)" 
  #generatePdfForm="ngForm">

然后在你的组件类中:

generatePdfFromOverview(generatePdfForm) 
  console.log('Form Value: ', generatePdfForm.value);

这个value 将有一个selectedSortOnItem 属性,这就是您要寻找的。​​p>

这里有一个Sample StackBlitz 供您参考。

【讨论】:

【参考方案2】:

原来这与https://materializecss.com/的问题有关

来自 Materialize 的 javascript 导致选择功能出现问题。

升级到 1.0.0 解决了这个问题。

【讨论】:

以上是关于在Angular 7中无法获得选择的价值的主要内容,如果未能解决你的问题,请参考以下文章

订阅角度时无法在 ngoninit 中获得价值

Angular2 NgModel 在 Jasmine 测试中没有获得价值

如何在 Angular 的 ng 组件中从 ng-slider 获取价值

如何在此文件夹中创建一个全新的 Angular 组件?为啥我使用 Angular CLI 获得此错误消息?

使用 Karma 测试 Angular 时选择性地模拟服务

使用ajax无法在我的控制器中获得价值? [重复]