cyber,
по поводу обращения к родительским контроллерам с такими же именами, вроде проблему решил:
<div ui:controller="MainMenu = new List()">
<div ui:controller="SubMenu = new List()">
{name} // sub
{List.name} // sub
{SubMenu.name} // sub
{MainMenu.name} // main
</div>
</div>
норм не? то есть ЕЕЕЕСЛИ ВДРУГ такое встретится что человек сделал один одноименный контроллер в другой и внутри внутреннего хочет обратится к полям внешнего, то он сможет сделать так
<div ui:controller="MainList = List">
<div ui:controller="List">
{name} // sub
{MainList.name} // main
</div>
</div>
он даст верхнему просто второе имя MainList и все) типа псевдоним