Loading...
simeon.georgiev avatar simeon.georgiev 62 Точки

[JS Frameworks] Различен темплейт за потребител и гост

Привет, колеги! В условието пише route-a за гост и логнат потребител да е еднакъв. До сега опитвах някакви варианти, но нещо не ми се получава. Кой е най-добрия начин това да стане?

Тагове:
0
JavaScript Applications 15/05/2015 20:03:45
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки
Best Answer

Аз го правя като закачам на scope-а функция, която проверява дали в localStorage-а има записан accessToken. След това в template-a имам 2 div-a с ng-if.

2
a.angelov avatar a.angelov 1316 Точки

По същият начин го правя и аз, тъй като не успях да намеря по-умен вариант.

По принцип може да се подава в templateUrl-а на $routeProvider-a функция, която да връща кой темплейт да се зарежда при определени условия. Аз исках проверката за логнат юзър да се извършва от service, обаче не можах да разбера как може да се ползва service в config-а на модула...

1
15/05/2015 22:59:22
yuletodim avatar yuletodim 37 Точки

Здравей! Аз постъпвам като теб в темплейта home.html имам 2 div-a за логнат и нелогнат user.  В логин функцията обаче когато трябвеа да сменя view-то за логнат с view за нелогнат, доста се измъчих. Следните варианти не дадоха никакъв резултат:  $location.path('/'), $route.reload(). В крайна сметка го хакнах ето така:

$window.location.reload('/');

Това сработи, но ми презарежда цялата страница и от там други гадости се появих дето ги позамазах. Ако имаш по-добра идея сподели :)

0
TeodorTodorov avatar TeodorTodorov 27 Точки

Не съм писъл грам JS, ако получаваш JSON от сървъра и използваш mvc JS framework, предполагам е работа на контролера да реши кое view да покаже, което да визуалзира, пробвай да направиш малък research в google, ако се абстрахираме от JS, 

Mvc - pseudo code

request-> controller->methodShowPage -{

if(user == logged) {

return view::make('index.logged');

}

else {

return view::make('index.NOTlogged');

}

 

-> view Rending - > client

Не претендирам това да е правилният начин, нека някой по.опитен да се изкаже.

1
15/05/2015 21:21:53
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.