AngularJS:将ng模型传递给函数

AngularJS:将ng模型传递给函数,angularjs,ng-class,Angularjs,Ng Class,我有大约40个输入字段,它们都使用相同的逻辑来应用ng类。因此,我没有重复ng类中的逻辑,而是决定定义一个函数并像这样调用它: <input ... ng-model="modelProperty" ng-class="GetHighlightingClassByNumericValue(modelProperty)" /> 考虑到我有40多个输入字段,我无法复制和粘贴它,因为模型属性不同。我想知道是否有办法将ng模型值传递给函数。一个选项是: .directive('mode

我有大约40个输入字段,它们都使用相同的逻辑来应用ng类。因此,我没有重复ng类中的逻辑,而是决定定义一个函数并像这样调用它:

<input ... ng-model="modelProperty" ng-class="GetHighlightingClassByNumericValue(modelProperty)" />


考虑到我有40多个输入字段,我无法复制和粘贴它,因为模型属性不同。我想知道是否有办法将ng模型值传递给函数。

一个选项是:

.directive('modelToClass', modelToClassDirective);

function modelToClassDirective() {
  return {
    restrict: 'AE',
    scope: { ngModel: '=' },
    template: '<input ng-class="doSomethingWithInputModel(ngModel)" ng-model="ngModel" />
  }
}
.directive('modelToClass',modelToClass directive);
函数modelToClassDirective(){
返回{
限制:“AE”,
作用域:{ngModel:'='},
模板:'
}
}

一个选项是:

.directive('modelToClass', modelToClassDirective);

function modelToClassDirective() {
  return {
    restrict: 'AE',
    scope: { ngModel: '=' },
    template: '<input ng-class="doSomethingWithInputModel(ngModel)" ng-model="ngModel" />
  }
}
.directive('modelToClass',modelToClass directive);
函数modelToClassDirective(){
返回{
限制:“AE”,
作用域:{ngModel:'='},
模板:'
}
}


为什么不将所有模型放在一个数组中并使用
ng repeat
?Hmm是以这种方式公开的$modelValue,还是仅当您在自定义指令中公开ngModelController时才公开?我有一个包含40列的表,每列都有一个绑定到不同模型属性的输入。我想避免调用指定模型属性的函数。您可以创建一个自定义指令,根据输入值设置类。是的,但我想使用ng类,因为它是一个内置功能。为什么不将所有模型放在一个数组中并使用
ng repeat
?Hmm是以这种方式公开的$modelValue,或者,这只是在自定义指令中公开ngModelController时发生的吗?我有一个包含40列的表,每列都有一个绑定到不同模型属性的输入。我想避免调用指定模型属性的函数。您可以创建一个自定义指令,根据输入值设置类。是的,但我想使用ng类,因为它是一个内置功能。您将如何使用它?您是否能够在具有不同样式或属性的不同输入字段中使用此指令?您描述了生成类的函数是
GetHighlightingClassByNumericValue(modelProperty)
?该函数存在于何处?该函数在同一控制器中声明。该函数是否可以移动到可注入控制器?并注入到这个新的指令控制器中?我认为它没有意义,因为它是一个简单的函数,返回一个基于数值的CSS类。您将如何使用它?您是否能够在具有不同样式或属性的不同输入字段中使用此指令?您描述了生成类的函数是
GetHighlightingClassByNumericValue(modelProperty)
?该函数存在于何处?该函数在同一控制器中声明。该函数是否可以移动到可注入控制器?并注入到这个新的指令控制器中?我认为它没有意义,因为它是一个基于数值返回CSS类的简单函数。