ng模型的输入基于另一个变量

ng-model in input based on another variable

本文关键字:另一个 变量 输入 模型 ng      更新时间:2023-09-26

我的角度应用程序<input type="text" ng-model="variableA">中有一个输入文件。根据某些条件,我想使用variableAvariableB。我试过这样的ng-model="condition ? variableA : variableB",但它抛出了Error: [ngModel:nonassign]。有什么办法让它发挥作用吗?

您可以使用ngModelOptions:

<input type="text" ng-model="setModel" ng-model-options="{getterSetter: true}">

在您的控制器中:

$scope.setModel = function(value) {
  var model = '';
  if (condition) {
    model = "variableA";
  } else {
    model = "variableB";
  }
  if (angular.isDefined(value)) {
    return ($scope[model] = value);
  } else {
    return $scope[model];
  } 
};

ngModel必须是一个属性表达式(遵循$parse的fules)。

尝试使用代理,然后观察该变量,然后将其分配给a或B:

<input type="text" ng-model="variableC">

在您的控制器中:

$scope.$watch('variableC', function(value) {
  if(someCondition) {
    $scope.variableA = value;
  } else { 
    $scope.variableB = value;
  }
});

怎么样

<input type="text" ng-model="variableC">

和控制器

$scope.variableC = (condition) ? variableA : variableB