条件选择angular2-json-schema-form

时间:2018-03-05 13:30:56

标签: json angular jsonschema

我想根据用户在选择框中选择的内容显示隐藏内容。

例如,

我有5个选项可供选择。我选择了选项1,它应该是另一个与选项1相关的组件。比如说选项1中的语句是否正确?是或否。我现在能够使其工作如下。我会有很多这样的用例,有更好的处理方法吗?

  "condition": {
"functionBody": 
   "try { return model.MultiSelect.indexOf('India')>=0 } 
    catch(e){return false}"
}

1 个答案:

答案 0 :(得分:1)

您应该利用 visibleIf 属性。 如README.md

中所述
  

可以使场的存在取决于另一场   场的价值。要实现这一点,您只需添加一个visibleIf   属性到字段的定义。将值$ ANY $添加到数组中   条件值,将使该字段对任何值可见   插入

那里给出的例子(注意registerEmail电子邮件字段中的visibleIf与你的情况类似):

@Component({
  selector: "minimal-app",
  template: '<sf-form [schema]="mySchema"></sf-form>'
})
export class AppComponent {
  mySchema = {
    "properties": {
      "name": {
        "type": "string",
        "description": "Username"
      },
      "comment": {
        "type": "string",
        "description": "Comment"
      },
      "registerNewsletter": {
        "type": "boolean",
        "description": "I want to receive the newsletter",
        "default": false,
        "visibleIf": {
          "comment": ['$ANY$']
        }
      },
      "registerEmail": {
        "type": "string",
        "description": "Email",
        "format": "email",
        // Declare that this field must be displayed only if registerNewsletter is true
        "visibleIf": {
          "registerNewsletter": [true]
        }
      }
    },
    "required": ["name", "comment", "registerToNewsletter"]
  }
}