Данни и модели в AngularJS

Имам това WebApp с това HTML оформление

Nav-колона-| Централна колона---- | Дясна колона

Link1---------|Данни, съответстващи|Данни, съответстващи на Link1-A

Link2---------| към Nav-колона------| (т.е. базирано на връзка към централна колона)

Линк3---------| Връзка1-A--------------|

----------------| Връзка1-B------------- |

Искам да използвам напълно силните страни на AngularJS. Разделих трите колони на три различни изгледа, като колоната за навигация се зарежда при зареждане на страницата. Сега искам да променя МОДЕЛ/ДАННИ, които се показват в централната колона въз основа на връзката, върху която потребителят кликва върху навигационната колона. Как да направя това?

Разбирам, че не е необходимо да променям изгледа (което е глупаво според мен). Трябва да променя само данните.


person SLearner    schedule 27.08.2013    source източник
comment
поставете часовник на $location.path() и правете каквото искате   -  person Ajay Beniwal    schedule 27.08.2013
comment
Звучи сякаш трябва да излъчвате събитие между контролерите, когато потребителят щракне върху навигационната колона.   -  person Zack Argyle    schedule 27.08.2013


Отговори (2)


Предлагам ви да погледнете тази страхотна публикация в блога, предлагаща решение за вложени изгледи и маршрутизиране. Ще намерите цялостно решение за управление на изгледи с помощта на ng-switchи ng-include, подобно на това, което казва Benoit Tremblay.

http://www.bennadel.com/blog/2441-Nested-Views-Routing-And-Deep-Linking-With-AngularJS.htm

person Frank6    schedule 27.08.2013
comment
Да, видях този пост. Не разбрах много от това! Съвсем нов съм в AngularJS. Имате ли и други връзки? Може би някакъв работещ пример някъде или plunkr? - person SLearner; 28.08.2013
comment
Трябва да погледнете това: angular-ui.github.io/ui -router/sample/# Това е почти същата концепция, но разработена за angularui и има страхотна проба. - person Frank6; 29.08.2013
comment
Frank6 Използвам това в момента, но как да променя данните там? Мога да създам множество изгледи, вложени изгледи и т.н., но как да променя данните в изглед? - person SLearner; 29.08.2013
comment
Данни ли трябва да заредите или данни, които вече имате? Опитахте ли да използвате обхвата, за да промените данните scope.data. Разгледахте ли метода за разрешаване за разрешаване на всякакви зависимости на асинхронен контролер? Може ли да публикувате част от вашия код? - person Frank6; 29.08.2013

Имате почти две възможности:

  1. Използвате ng-show и променлива на обхвата, споделена между вашите изгледи. (вашият централен изглед ще стане безпорядък, ако имате много неща, страхотно, ако не ви се случва твърде много)

  2. Използвате чист ng-include и променлива за обхват с изгледа, който искате да покажете. Страхотно, ако имате много възможности.

Или можете да смесите и двете, ако искате да групирате някои от тях. Зависи изцяло от това, от което се нуждаете.

person Benoit Tremblay    schedule 27.08.2013