Update: I've added a proper github project here.
In classic UI, it was easy to specify the options property on a selection xtype.
This made getting dynamic data into a dropdown very easy. Simply point the options property to /path/to/resource.infinity.json and you were done. In Granite, things don't work this easy.
The ACS commons solution works great, but it's a bit rigid on the data structure. I used it as my starting point for the solution below.
My solution is a 3 step process, requires no JS and no external dependencies.
Make a datasource component. It only needs to have one jsp file in it...
Add a datasource node to your dialog property. Read the gist for pertinent info.