Angular-Formly:隐藏/禁用服务中的字段

时间:2015-10-02 09:38:29

标签: javascript angularjs 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
  }
},

1 个答案:

答案 0 :(得分:3)

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

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