4

我有一项服务,我尝试禁用 angular-formly 字段:

formField.templateOptions.disabled = true;

即使 templateOption 对象是正确的,该字段也不会被禁用:

"templateOptions": {
    "type": "text",
    "placeholder": "",
    "label": "Single Line Test",
    "disabled": true
  },

这不可能吗?

谢谢。

编辑:在服务中禁用之前的表单代码

{
  "type": "input",
  "key": "single_line_test",
  "templateOptions": {
    "type": "text",
    "placeholder": "",
    "label": "Single Line Test"
  },
  "data": {},
  "validation": {
    "messages": {},
    "errorExistsAndShouldBeVisible": false
  },
  "id": "formly_2_input_single_line_test_3",
  "name": "formly_2_input_single_line_test_3",
  "formControl": {
    "$validators": {},
    "$asyncValidators": {},
    "$parsers": [],
    "$formatters": [
      null
    ],
    "$viewChangeListeners": [],
    "$untouched": true,
    "$touched": false,
    "$pristine": true,
    "$dirty": false,
    "$valid": true,
    "$invalid": false,
    "$error": {},
    "$name": "formly_2_input_single_line_test_3",
    "$options": null
  }
},
4

1 回答 1

3

如果您希望属性是动态的,则必须使用expressionProperties. 从技术上讲,您不必通过表达式属性查看它,但它需要存在于表达式属性中,因为 formly 有一个优化,基本上说如果它不在那里,那么它就不会监视更改。这是性能优化。

您可以在此示例中看到动态禁用工作:http: //angular-formly.com/#/example/intro/codementor

于 2015-10-02T11:55:36.093 回答