The reason for this is because the loadOnDemand is designed to work with data which is loaded from the server to make smaller requests. And when only a part of the data is fetched the widget does not have an information for the child node as they are not loaded yet.
When a local data is used there is no need of the loadOnDemand property as it will not affect the application because the data is already available, using it can only lead to the described issue.
Also, if the data is available the loadOnDemand will not affect the rendering as the data will be collapsed by default.
Telerik by Progress
Build rich, delightful, *native* Angular 2 apps with Kendo UI for Angular 2
. Try it out today
! Kendo UI for Angular 2 (currently in beta) is a jQuery-free toolset, written in TypeScript, designed from the ground up to offer true, native Angular 2 components.