我想设置一个观察者,当templateOptions中的特定值发生变化时,该观察者将为该字段运行一个函数。当您想知道输入已被更改时,可以使用正常的形式观察器,因此在我的情况下不起作用。我已经尝试过expressionProperties,但是我无法让它工作。
我以js Bin为例。 将鼠标悬停在一个字段上时,有两个输入字段templateOptions.mouseOver变为true,鼠标离开时,mouseOver布尔值变为false。我该怎么办才能运行mouseOver更改函数?
答案 0 :(得分:0)
如果要为每个单独的字段执行操作,您只需将控制器放在字段上,或者如果在指定要运行的函数后,如果每个字段的函数相同,则可以将其放在模板中NG-鼠标悬停。像这样:
formlyConfigProvider.setWrapper([
{
template: [
'editorEnabled: {{to.editorEnabled}}',
'<div ng-mouseover="to.editorEnabled=true; Update()" ng-mouseleave="to.editorEnabled=false; Update()">',
'<formly-transclude></formly-transclude>',
'</div>'
].join(' '),
controller: function($scope) {
$scope.Update = function() {
//Code to run when value changes
}
}
}
]);
如果您在每个单独的字段中执行此操作(如果您要调用的函数对于每个字段将会有所不同),您可以这样做:
vm.fields = [
{
key: 'textField1',
type: 'input',
templateOptions: {
label: 'Input1',
type: 'text',
value:vm.model.textField1,
editorEnabled: false
},
controller: function($scope) {
$scope.Run = function() {
alert('Changed!');
}
}
},