SCHEMA变化时的Angular-Schema-Form变更表格

时间:2015-07-15 12:30:39

标签: javascript angularjs jsonschema angular-schema-form

我遇到了使用角度架构表单更改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": {
}

我想要的是选择要加载的模式并将表单更改为我选择的模式。 非常感谢你。

1 个答案:

答案 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');
}