首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击angular-schema-form生成的复选框会导致错误'cannot read property 'length‘of undefined’

单击angular-schema-form生成的复选框会导致错误'cannot read property 'length‘of undefined’
EN

Stack Overflow用户
提问于 2016-06-17 01:32:11
回答 1查看 204关注 0票数 1

我在我的控制器中声明了以下模式和表单:

代码语言:javascript
复制
$scope.schema = {
        "type": "object",
        "properties": {
            "s4_0": {
                "type": "array",
                "title": "CHECKBOXES",
                "items": {
                    "type": "string",
                    "enum": [
                        1,
                        2,
                        3
                    ]
                }
            }
        }
    };

    $scope.form = [
        {
            "key": "s4_0",
            "type": "checkboxes",
            "titleMap": [
                {
                    "value": "1",
                    "name": "box 1"
                },
                {
                    "value": "2",
                    "name": "box 3"
                },
                {
                    "value": "3",
                    "name": "box 2"
                }
            ]
        },
        {
            "type": "submit",
            "title": "Submit"
        }
    ];

我的视图有以下表单声明:

代码语言:javascript
复制
<form name="myForm"
          sf-schema="schema"
          sf-form="form"
          ng-submit="onSubmit(myForm)"></form>

这会正确地呈现复选框,但每次我单击复选框时,都会出现以下错误:

代码语言:javascript
复制
angular.js:13424 TypeError: Cannot read property 'length' of undefined
at schema-form.min.js:1
at $watchCollectionAction (angular.js:16734)
at Scope.$digest (angular.js:16869)
at Scope.$apply (angular.js:17133)
at $$debounceViewValueCommit (angular.js:26702)
at $setViewValue (angular.js:26674)
at HTMLInputElement.listener (angular.js:23277)
at HTMLInputElement.dispatch (jquery-1.12.4.min.js:3)
at HTMLInputElement.r.handle (jquery-1.12.4.min.js:3)

当我将我的模式和表单粘贴到angular- schema -form游乐场中时,它工作得很好,但在我的应用程序中,它一直抛出错误。此外,在提交时,字段的值将保存为"false“,而不是所选的选项数组。

你知道我会做错什么吗?

我很乐意发布更多的信息,这可能是更有帮助的。

EN

回答 1

Stack Overflow用户

发布于 2016-10-10 21:14:26

这是因为我没有将模型设置为我的角度模式形式。因此,在您作用域中添加一个模型对象,并在表单声明中添加sf-model以指向该变量:

代码语言:javascript
复制
$scope.surveymodel = {};

<form name="myForm"
          sf-schema="schema"
          sf-form="form"
          sf-model="surveymodel"
          ng-submit="onSubmit(myForm)"></form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37865825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档