<p>如何为select input和input field创建两个不同的模型,并用nil初始化它们。所以你可以:</p>
<pre><code><select ng-model='selectModel' ng-disabled='inputModel'>
...
</select>
<input type='text' ng-model='inputModel' ng-disabled='selectModel' />
</code></pre>
<p>如果您需要通过更改选择和输入模型来更改原始模型:</p>
<p><strong>html</strong></p>
^{pr2}$
<p><strong>js</strong></p>
<pre><code>$scope.originalModel = null;
$scope.syncModel = function (value) {
$scope.originalModel = value;
}
</code></pre>
<p><strong>更新:</strong>
如果要清除其他字段:</p>
<pre><code>$scope.syncModel = function (value) {
$scope.originalModel = value;
//clearing
if (value == $scope.inputModel)
$scope.selectModel = null;
else
$scope.inputModel = null;
}
</code></pre>
<p>脏但容易</p>
<p><strong>更新:</strong>
您的代码:</p>
<pre><code> <table align="center">
<tr>
<td>
<div class="input-group">
<span class="input-group-addon"><b>BB</b></span>
<input class="form-control" type="input" ng-model="final_data.bb" readonly>
</div>
</td>
<p align="center" ng-show="processing['update_ms']" ng-class="processing['update_mst'].class" ng-cloak>
{{ processing['update_ms'].msg }}
</p>
<td>
<div class="input-group">
<span class="input-group-addon"><b>InputA</b></span>
<select class="form-control" ng-change="get_mass(); syncModels(selectModel) " ng-model="selectModel" ng-options="m as m for m in maslist" required ng-cloak ng-disabled="inputModel">
</select> &nbsp;
</div>
</td>
<td>
<div class="input-group">
<span class="input-group-addon"><b>InputB*</b></span>
<input class="form-control" ng-disabled="selectModel" ng-model="inputModel" ng-change="syncModels(inputModel)" type="input">&nbsp;
</div>
</td>
</tr>
</table>
</code></pre>
<p><strong>js</strong></p>
<pre><code>$scope.selectModel = null;
$scope.inputModel = null;
$scope.syncModels = function (value) {
$scope.final_data.mas = value;
//clearing
if (value == $scope.inputModel)
$scope.selectModel = null;
else
$scope.inputModel = null;
}
</code></pre>