2015-05-02 3 views
2

Я пытаюсь настроить динамические именованные представления в ng-repeat, но не могу сделать это на этапе конфигурации, поскольку представления могут быть названы статически. Есть ли способ подражать параметру url param, например '/path/:param', но с именами названий вроде views: {'path:param': {...}}?Динамические имена имен с помощью ui-router

Я попытался изменения состояния объекта конфигурации в run(), чтобы увидеть, если изменение состояния конфигурации после config() имели никакого эффекта:

rootScope.$on('$stateChangeStart', function(e, to, toP, from, fromP) { 
    //nope 
    if(toP.itemId) { 
    to.views['item-'+toP.itemId+'@home'] = to.views['item-:[email protected]']; 
    delete to.views['item-:[email protected]']; 
    } 
} 

plunker: http://plnkr.co/edit/ZkrteD1ls71yd5V10Xub?p=preview

ответ

3

Эта концепция не будет работать, в общем ,

Причина заключается в том, что стабильна, твердоеstates не должна быть обусловлена ​​data(которые являются очень динамичны, часто изменяющимся). Сначала должны быть определены все states и их views :{}. data(в виде списка) следует вводить туда, потребляя уже определенные состояния.

  • states должен быть определен раз (даже если немного позже, конфигурации после загрузки с помощью $http)
  • data может изменяться во время применения срока службы часто, часто. Они должны быть помещены в states/views - но не гоните их

Как загрузить динамические состояния динамически $http(с использованием .run() фазы)? Проверьте это с полными примерами и деталями:

Небольшой отрывок из док из deferIntercept(defer):

Блокирует (или позволяет) откладывание перехвата изменения местоположения ...

Таким образом, мы можем (один раз)отложить обработку URL/место ... на данный момент, когда все состояния динамически загружаемой. Но эту функцию можно использовать только один раз.

Ну, все, что еще не вписывалось в то, что мы хотим - поместите некоторые детали в список.

Существует большая деталь Q & A, который должен дать некоторое представление:

How to replace list item with details

Пожалуйста, имейте look at that, потому что есть подробное описание и рабочий пример ...

Смежные вопросы