schemaform 将用户输入添加到模式数组
schemaform adding the user input to a schema array
背景
我正在使用 angular-schema-form
制作表格
设置
我正在尝试制作一组用户可以使用表单制作的项目。因此,用户可以根据需要向数组中添加任意数量的项目。
现在数组中的项目包含一个命令类型。
命令类型应该是一个包含 SSH、REST 以及用户输入的任何个性化命令类型的下拉列表。
到目前为止的代码
架构
{
"type": "object",
"properties": {
"personalizedCommandType": {
"title": "Personalized Command Type",
"type": "string"
},
"commands": {
"type": "array",
"title": "Actions",
"items": {
"type": "object",
"properties": {
"commandType": {
"title": "Command Type",
"type": "string",
"enum": [
"REST",
"SSH"
]
}
}
}
}
}
}
表格
[
{
"type": "help",
"helpvalue": "<h5>Command</h5>"
},
{
"key":"personalizedCommandType"
},
{
"title":"Command",
"key": "commands",
"items": [
"commands[].commandType"
]
}
]
可以在此处测试此代码:http://schemaform.io/examples/bootstrap-example.html。只需复制并粘贴我的代码即可。
问题
如您所见,我现在拥有的代码有一个带有个性化命令类型的字段和一个带有 2 个选项 SSH 和 REST 的下拉菜单数组。但我想在用户输入后也包含个性化命令类型的值。
注意
copyValueTo
似乎没有我想要的功能,因为它只能更改 model 中的值,但我希望它更改枚举数组在 架构中 .
使用onChange
选项:
[
{
"type": "help",
"helpvalue": "<h5>Command</h5>"
},
{
"key":"personalizedCommandType"
onChange: "updateSchema(modelValue,form)"
},
{
"title":"Command",
"key": "commands",
"items": [
"commands[].commandType"
]
}
]
更新架构:
var defaultEnum = ["REST","SSH"];
$scope.updateSchema = function(modelValue,form) {
var currentEnum = $scope.schema.commands.items.properties.commandType.enum;
angular.copy(defaultEnum, currentEnum);
if (modelValue) {
currentEnum.push(modelValue);
};
$scope.$broadcast('schemaFormRedraw');
};
背景
我正在使用 angular-schema-form
制作表格设置
我正在尝试制作一组用户可以使用表单制作的项目。因此,用户可以根据需要向数组中添加任意数量的项目。
现在数组中的项目包含一个命令类型。
命令类型应该是一个包含 SSH、REST 以及用户输入的任何个性化命令类型的下拉列表。
到目前为止的代码
架构
{
"type": "object",
"properties": {
"personalizedCommandType": {
"title": "Personalized Command Type",
"type": "string"
},
"commands": {
"type": "array",
"title": "Actions",
"items": {
"type": "object",
"properties": {
"commandType": {
"title": "Command Type",
"type": "string",
"enum": [
"REST",
"SSH"
]
}
}
}
}
}
}
表格
[
{
"type": "help",
"helpvalue": "<h5>Command</h5>"
},
{
"key":"personalizedCommandType"
},
{
"title":"Command",
"key": "commands",
"items": [
"commands[].commandType"
]
}
]
可以在此处测试此代码:http://schemaform.io/examples/bootstrap-example.html。只需复制并粘贴我的代码即可。
问题
如您所见,我现在拥有的代码有一个带有个性化命令类型的字段和一个带有 2 个选项 SSH 和 REST 的下拉菜单数组。但我想在用户输入后也包含个性化命令类型的值。
注意
copyValueTo
似乎没有我想要的功能,因为它只能更改 model 中的值,但我希望它更改枚举数组在 架构中 .
使用onChange
选项:
[
{
"type": "help",
"helpvalue": "<h5>Command</h5>"
},
{
"key":"personalizedCommandType"
onChange: "updateSchema(modelValue,form)"
},
{
"title":"Command",
"key": "commands",
"items": [
"commands[].commandType"
]
}
]
更新架构:
var defaultEnum = ["REST","SSH"];
$scope.updateSchema = function(modelValue,form) {
var currentEnum = $scope.schema.commands.items.properties.commandType.enum;
angular.copy(defaultEnum, currentEnum);
if (modelValue) {
currentEnum.push(modelValue);
};
$scope.$broadcast('schemaFormRedraw');
};