Delay a DataSource until another DataSource is ready
<Component name="Test" var.selectedId="" var.nonce="{0}">
<DataSource
id="users_for_ds_dependency"
url="/api/users_for_ds_dependency?nonce"
inProgressNotificationMessage="Loading users..."
when="{ nonce > 0 }"
/>
<DataSource
id="departments_with_ds_dependency"
url="/api/departments_with_ds_dependency"
when="{ users_for_ds_dependency.loaded }"
inProgressNotificationMessage="Loading departments..."
/>
<Select
id="usersForDsDepencency"
data="{users_for_ds_dependency}"
when="{departments_with_ds_dependency.loaded}"
onDidChange="(newVal) => selectedId = newVal"
>
<Items data="{users_for_ds_dependency}">
<Option
value="{$item.id}"
label="{$item.name} ({departments_with_ds_dependency.value.find(d => d.id === $item.departmentId)?.name})"
/>
</Items>
</Select>
<Button
label="Run"
onClick="{nonce++}"
/>
</Component>
<Component name="Test" var.selectedId="" var.nonce="{0}">
<DataSource
id="users_for_ds_dependency"
url="/api/users_for_ds_dependency?nonce"
inProgressNotificationMessage="Loading users..."
when="{ nonce > 0 }"
/>
<DataSource
id="departments_with_ds_dependency"
url="/api/departments_with_ds_dependency"
when="{ users_for_ds_dependency.loaded }"
inProgressNotificationMessage="Loading departments..."
/>
<Select
id="usersForDsDepencency"
data="{users_for_ds_dependency}"
when="{departments_with_ds_dependency.loaded}"
onDidChange="(newVal) => selectedId = newVal"
>
<Items data="{users_for_ds_dependency}">
<Option
value="{$item.id}"
label="{$item.name} ({departments_with_ds_dependency.value.find(d => d.id === $item.departmentId)?.name})"
/>
</Items>
</Select>
<Button
label="Run"
onClick="{nonce++}"
/>
</Component>