AlpacaJS:数组中动态添加对象的观察者

时间:2017-10-17 08:40:18

标签: javascript jquery arrays observers alpacajs

我希望有人可以给我一个提示。 Ic创建了一个具有不同数组字段的表单。其中一个有两个下拉列表,其中第二个中的条目取决于第一个中的条目。这应该很容易用观察者解决,只是在第一个中的值改变之后加载第二个中的值。到目前为止没问题。

但现在问题是,如果我测试这个静态字段集很容易,但我无法弄清楚如何为动态添加的字段寻址观察者。

另外,我不确定是否有选项来解决相对而非绝对的字段。因为我必须始终在实际对象中设置值,所以会容易得多。

这是一个小小提琴设置https://jsfiddle.net/ygwuxrbk/

{
        "schema": {
            "title": "Erfassung",
            "type": "array",
            "items": {
                "title": "Account",
                "type": "object",
                "properties": {
                    "services": {
                        "type": "array",
                        "title": "Services",
                        "required": true,
                        "uniqueItems": true,
                        "items": {
                            "description": "Angebotenen Services des Anbieters",
                            "type": "object",
                            "id": "arr_item",
                            "properties": {
                                "category": {
                                    "type": "select",
                                    "title": "Service Kategorie",
                                    "required": true,
                                    "$ref": "#/definitions/categories"
                                },
                                "service": {
                                    "title": "Service",
                                    "type": "select",
                                    "enum": service["Beauty & Wellness"]
                                }
                            }
                        }

                    }
                 }
            },
            "definitions": {
                "categories": {
                    "enum":
                    categories
                },
            }
        },
        "options": {
            "fields": {
                "category": {
                    "type": "select",
                    "label": "Category",
                    "onFieldChange": function (e) {
                            console.log(this.getValue());
                    }
                }
            }
        },
        "form": {
            "attributes": {
                "action": "http://testcompany.com/echo.php",
                "method": "post"
            },
            "buttons": {
                "save": {
                    "title": "Save",
                    "click": function(e) {
                        alert(JSON.stringify(this.getValue()));
                        //this.submit(); // submit it via regular HTTP post
                        this.ajaxSubmit(); // submit via ajax
                    }
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

上例中使用的路径是

                 "options": {
            "items": {
                "fields": {
                    "services": {
                        "items": {
                            "fields": {
                                "category": {
                                    "events": {
                                        "change": function() {
                                            console.log(this.value);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }