输入上的 ngChange 由 select 更改
ngChange on input changed by a select
我有一个简单的 select 输入字段,用户可以在其中选择一个选项:
<select class="form-control" id="calc-masterbatchCode"
ng-options="masterbatch as masterbatch.code for masterbatch in masterbatches"
ng-model="$parent.materialTAB.selectedMasterbatch">
</select>
如您所见,selectedMasterbatch
对象存储在父控制器中。
然后我有一个禁用的输入字段以显示 selectedMasterBatch
的 属性:
<input type="text" class="form-control" id="calc-masterbatchPercentage"
ng-model="$parent.materialTAB.selectedMasterbatch.percentage"
ng-change="onMasterbPercentageChange()">
有效,但问题是ngChange
指令:
因为当用户 select 另一个母料时它不会触发 onMasterbPercentageChange
功能。
触发该功能的唯一方法是在 calc-masterbatchParcentage
输入字段中手动输入内容。
我的目标是:
用户 select 母料,然后他可以在禁用的输入字段中看到母料的 属性(百分比),并且当此更改时,onMasterbPercentageChange
功能被触发。
ngChange
指令不适用于 disable/readonly 输入,因为它仅在输入值的变化导致新值被计算时才被评估致力于模型。因此,由于您以编程方式更改值并且未向该模型键入任何内容,因此它不会调用 ngChange
这里是从docs中摘录的部分:
ngChange 将不会被评估:
如果从 $parsers 转换管道返回的值没有改变
如果输入继续无效,因为模型将保持为空
如果以编程方式更改模型而不是通过更改输入值
因此,要实现您想要的效果,您必须将您的ng-change
移动到您的<select>
。
希望对您有所帮助。
我有一个简单的 select 输入字段,用户可以在其中选择一个选项:
<select class="form-control" id="calc-masterbatchCode"
ng-options="masterbatch as masterbatch.code for masterbatch in masterbatches"
ng-model="$parent.materialTAB.selectedMasterbatch">
</select>
如您所见,selectedMasterbatch
对象存储在父控制器中。
然后我有一个禁用的输入字段以显示 selectedMasterBatch
的 属性:
<input type="text" class="form-control" id="calc-masterbatchPercentage"
ng-model="$parent.materialTAB.selectedMasterbatch.percentage"
ng-change="onMasterbPercentageChange()">
有效,但问题是ngChange
指令:
因为当用户 select 另一个母料时它不会触发 onMasterbPercentageChange
功能。
触发该功能的唯一方法是在 calc-masterbatchParcentage
输入字段中手动输入内容。
我的目标是:
用户 select 母料,然后他可以在禁用的输入字段中看到母料的 属性(百分比),并且当此更改时,onMasterbPercentageChange
功能被触发。
ngChange
指令不适用于 disable/readonly 输入,因为它仅在输入值的变化导致新值被计算时才被评估致力于模型。因此,由于您以编程方式更改值并且未向该模型键入任何内容,因此它不会调用 ngChange
这里是从docs中摘录的部分:
ngChange 将不会被评估:
因此,要实现您想要的效果,您必须将您的ng-change
移动到您的<select>
。
希望对您有所帮助。