Пользовательский интерфейс Angularjs-вложенные состояния маршрутизатора отображают только определенный результат

#php #jquery #angularjs #angular-ui-router

Вопрос:

У меня есть приложение angularjs с вложенными состояниями. Но я не знаю, как динамически показывать / скрывать divs во вложенных состояниях…

Это работает следующим образом:

на index.html есть три ссылки:

 <a ui-sref="territory({territory: 'amer'})">AMER</a>amp;nbsp;<a ui-sref="territory({territory: 'emea'})">EMEA</a>amp;nbsp;<a ui-sref="territory({territory: 'apac'})">APAC</a>

<ui-view></ui-view>
 

На основе того, что нажато, отобразится список со странами.
Эти страны также сами являются связующим звеном, создаваемым представлением ‘views/countries.html’
код:

 <h1>This is countries</h1>
<br>
Teritory: {{region}}
<div ng-repeat='country in countries'>
    <a ui-sref=".support({country: '{{country}}'})">{{country}}</a ui-sref>
        <ui-view></ui-view>
    </div>
</div>
 

пользовательский интерфейс здесь-это то, что я хочу использовать при нажатии на страну, он должен показывать людей, принадлежащих к этой стране…но только при нажатии на эту страну.

пример:

 Sweden

 - person A
 - person B

Germany
Italy
 

И когда, например, нажата Италия, люди под Швецией снова будут скрыты, а люди под Италией будут показаны.

Контроллер, принадлежащий .support, затем должен использовать заводскую службу для поиска людей. Но контролер должен (я полагаю) также нести ответственность за отображение данных о людях только в нужной стране. Но вот тут-то я и застрял. Я почти уверен, что мне нужно разместить второе вложенное представление пользовательского интерфейса в div и динамически переключать его видимость…

псевдокод:

 When country-link is clicked
controller reads which country is clicked (by using $stateparams)
get the results from service (parameter country)
return the people
Make the div under the correct country visible
hide the rest
 

Как я могу сделать это разумным способом, мне нужно назначить идентификатор или имя div, а затем сделать его видимым или скрыть, когда появятся результаты…

конечно, одним из решений было бы поместить представление в список стран. Тогда это не было бы проблемой. Но я действительно хочу, чтобы они жили в той стране, которой они принадлежат….

ps. что происходит сейчас при нажатии на одну из стран, это:

 Teritory: emea
Sweden emeaBelgiumsupporters go here
Poland emeaBelgiumsupporters go here
Italy emeaBelgiumsupporters go here
Malta emeaBelgiumsupporters go here
Netherlands emeaBelgiumsupporters go here
 

thank you!