在问题之间共享数据——不能为第二个业务产生不同的结果

Sharing data between questions – cannot produce different results for second business

我正在使用 'share data between questions' 示例 SurveyJS

我不是 'employers',而是询问商家名称,然后继续询问每个商家的营业时间。

要复制问题,您需要输入 2 个或更多个企业。在下一页,开放时间问题是 'visible if' 第一个布尔问题回答为真。

这对第一个业务很好,但是,后续业务会挂起第一个布尔结果而不是他们自己的布尔结果。

这意味着 'visible if' 条件仅适用于第一家企业,如果后续企业对布尔值的回答是否定的,这不会影响营业时间问题对他们的显示方式。

如何让营业时间问题响应每个单独的企业而不是第一个企业?

我在下面包含了 JSON 文件,希望能更好地解释这个问题。

我认为问题是因为 'visbleif' 正在定位 businesses(0).seperateopeninghours,即由于 0 部分始终查看集合中的第一项。

是否可以根据您正在查看的业务更改此数字?

{
    "pages":[
        {
            "name":"page1",
            "elements":[
                {
                    "type":"matrixdynamic",
                    "name":"BusinessName",
                    "title":"Enter Business name(s)",
                    "valueName":"businesses",
                    "isRequired":true,
                    "columns":[
                        {
                            "name":"BusinessName",
                            "title":"Name of business",
                            "cellType":"text",
                            "isRequired":true
                        }
                    ],
                    "rowCount":1,
                    "minRowCount":1,
                    "addRowText":"Add another business"
                }
            ],
            "title":"CoMap Business Profiler"
        },
        {
            "name":"page2",
            "elements":[
                {
                    "type":"paneldynamic",
                    "name":"arrray_employer_info",
                    "title":"Your businesses",
                    "valueName":"businesses",
                    "templateElements":[
                        {
                            "type":"boolean",
                            "name":"SeparateOpenning",
                            "title":"does {panel.BusinessName} have different opening hours?"
                        },
                        {
                            "type":"matrixdropdown",
                            "name":"OpenClosed1",
                            "visibleIf":"{businesses[0].SeparateOpenning} = true",
                            "title":"Which days is {panel.BusinessName} open?",
                            "columns":[
                                {
                                    "name":"Closed",
                                    "title":"Open or Closed?",
                                    "cellType":"boolean",
                                    "labelTrue":"Closed",
                                    "labelFalse":"Open"
                                }
                            ],
                            "cellType":"boolean",
                            "rows":[
                                "Monday",
                                "Tuesday",
                                "Wednesday",
                                "Thursday",
                                "Friday",
                                "Saturday",
                                "Sunday"
                            ]
                        },
                        {
                            "type":"matrixdropdown",
                            "name":"OpeningHours1",
                            "visibleIf":"{businesses[0].SeparateOpenning} = true",
                            "startWithNewLine":false,
                            "title":"Please enter the opening hours for {panel.name}.",
                            "hideNumber":true,
                            "columns":[
                                {
                                    "name":"Opening Time",
                                    "cellType":"text",
                                    "inputType":"time"
                                },
                                {
                                    "name":"Closing Time",
                                    "cellType":"text",
                                    "inputType":"time"
                                }
                            ],
                            "cellType":"text",
                            "rows":[
                                {
                                    "value":"Monday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Monday.Closed} = '[object Object]'"
                                },
                                {
                                    "value":"Tuesday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Tuesday.Closed} = false"
                                },
                                {
                                    "value":"Wednesday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Wednesday.Closed} = false"
                                },
                                {
                                    "value":"Thursday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Thursday.Closed} = false"
                                },
                                {
                                    "value":"Friday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Friday.Closed} = false"
                                },
                                {
                                    "value":"Saturday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Saturday.Closed} = false"
                                },
                                {
                                    "value":"Sunday",
                                    "visibleIf":"{businesses[0].OpenClosed1.Sunday.Closed} = false"
                                }
                            ]
                        }
                    ],
                    "templateTitle":"Business name: {panel.BusinessName}",
                    "allowAddPanel":false,
                    "allowRemovePanel":false
                }
            ],
            "title":"xxx"
        }
    ]
}

创建的每个面板对应于 1 个企业实例 - 所以交换

"{企业[0].SeparateOpenning} = true",

{panel.SeparateOpenning} = 真