在问题之间共享数据–无法为第二项业务带来不同的结果

问题描述

我正在使用 SurveyJS 上的“问题间共享数据” 示例。

我要问的不是“雇主”,而是问每个公司的营业时间。

要复制该问题,您需要输入2个或更多的业务。在下一页上,如果第一个布尔值问题回答为“真”,则开放时间问题“可见”。

这对于第一个业务来说效果很好,但是,随后的业务则不考虑第一个布尔结果,而不是他们自己的布尔结果。

意思是“可见的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","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"
                                }
                            ],"rows":[
                                "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"
                            ]
                        },"name":"openingHours1","startWithNewLine":false,"title":"Please enter the opening hours for {panel.name}.","hideNumber":true,"columns":[
                                {
                                    "name":"opening Time","inputType":"time"
                                },{
                                    "name":"Closing Time","inputType":"time"
                                }
                            ],"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个业务实例-因此交换

“ {businesses [0] .SeparateOpenning} = true”,

{panel.SeparateOpenning} = true”