我遇到了使用角度架构表单更改json架构的问题。 如果我像这样的代码中设置架构
$scope.schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Schema number ONE",
"type": "object",
"properties": {..
它可以正常工作并根据需要呈现整个表单。 但我想从Web服务加载数据。
所以我尝试将架构设置为空,然后通过单击按钮进行更改,但它没有用。我的意思是,我从服务获得架构,但形式不会改变。 例如代码中的这类内容。
$scope.schema = {};
$scope.changeSchema= function(){
$scope.schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": " Schema number two that I want",
"type": "object",
"properties": {
}
我想要的是选择要加载的模式并将表单更改为我选择的模式。 非常感谢你。
答案 0 :(得分:1)
正如Claies在评论中指出的那样,您需要触发一个schemaFormRedraw广播。但是在加载时,错误是由于您对{}
所拥有的架构进行了验证,这需要是一个临时架构,这些内容应该有效:
$scope.schema = { "type": "object", "properties": {} }};
$scope.changeSchema = function() {
$scope.schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": " Schema number two that I want",
"type": "object",
"properties": {...}
}
$scope.$broadcast('schemaFormRedraw');
}