禁用 angular-formly 中的所有输入
Disabled all input in angular-formly
我在 angularjs 中有 2 种形式和 2 种状态。表单 1(状态 1)包含输入,如:input,select... 表单 2(状态 2)在提交表单 1 时显示。 form2 中的所有字段与 form 1 中的字段相同,但必须禁用它们。我通过使用 $stateParams
like that vm.fields = $stateParams.fieldForm1
; 将所有字段从表格 1 传递到表格 2;那么我该怎么做才能禁用表单 2
中的所有字段
在 angular 的情况下,您需要设置一个名为 formState
的选项。
<body ng-app="formlyExample" ng-controller="MainCtrl as vm">
<div>
<formly-field options="vm.checkboxField" model="vm.options.formState"></formly-field>
</div>
</body>
在控制器级别,您必须像这样设置 formState:
(function() {
'use strict';
var app = angular.module('formlyExample', ['formly', 'formlyBootstrap']);
app.controller('MainCtrl', function MainCtrl($scope, formlyVersion) {
vm.env = {
angularVersion: angular.version.full,
formlyVersion: formlyVersion
};
var vm = this;
vm.options = {
formState: {
disabled: true
}
}
});
})();
并更新所有字段的 formState,您可以执行以下操作:
angular.forEach(vm.fields, function(field) {
field.expressionProperties = field.expressionProperties || {};
field.expressionProperties['templateOptions.disabled'] = 'formState.disabled';
});
使用 fieldGroup 时的正确答案。在控制器中:
vm.options = {
formState: {
disabled: true
}
};
angular.forEach(vm.fields, function(field) {
if(field.fieldGroup == null) {
field.expressionProperties = field.expressionProperties || {};
field.expressionProperties['templateOptions.disabled'] = 'formState.disabled';
}else {
var i = 0;
for(i=0; i< field.fieldGroup.length; i++){
field.fieldGroup[i].expressionProperties = field.fieldGroup[i].expressionProperties || {};
field.fieldGroup[i].expressionProperties['templateOptions.disabled'] = 'formState.disabled';
}
}
});
我在 angularjs 中有 2 种形式和 2 种状态。表单 1(状态 1)包含输入,如:input,select... 表单 2(状态 2)在提交表单 1 时显示。 form2 中的所有字段与 form 1 中的字段相同,但必须禁用它们。我通过使用 $stateParams
like that vm.fields = $stateParams.fieldForm1
; 将所有字段从表格 1 传递到表格 2;那么我该怎么做才能禁用表单 2
在 angular 的情况下,您需要设置一个名为 formState
的选项。
<body ng-app="formlyExample" ng-controller="MainCtrl as vm">
<div>
<formly-field options="vm.checkboxField" model="vm.options.formState"></formly-field>
</div>
</body>
在控制器级别,您必须像这样设置 formState:
(function() {
'use strict';
var app = angular.module('formlyExample', ['formly', 'formlyBootstrap']);
app.controller('MainCtrl', function MainCtrl($scope, formlyVersion) {
vm.env = {
angularVersion: angular.version.full,
formlyVersion: formlyVersion
};
var vm = this;
vm.options = {
formState: {
disabled: true
}
}
});
})();
并更新所有字段的 formState,您可以执行以下操作:
angular.forEach(vm.fields, function(field) {
field.expressionProperties = field.expressionProperties || {};
field.expressionProperties['templateOptions.disabled'] = 'formState.disabled';
});
使用 fieldGroup 时的正确答案。在控制器中:
vm.options = {
formState: {
disabled: true
}
};
angular.forEach(vm.fields, function(field) {
if(field.fieldGroup == null) {
field.expressionProperties = field.expressionProperties || {};
field.expressionProperties['templateOptions.disabled'] = 'formState.disabled';
}else {
var i = 0;
for(i=0; i< field.fieldGroup.length; i++){
field.fieldGroup[i].expressionProperties = field.fieldGroup[i].expressionProperties || {};
field.fieldGroup[i].expressionProperties['templateOptions.disabled'] = 'formState.disabled';
}
}
});