在问题之间共享数据——不能为第二个业务产生不同的结果
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} = 真
我正在使用 '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} = 真