[JS Frameworks] Различен темплейт за потребител и гост
Привет, колеги! В условието пише route-a за гост и логнат потребител да е еднакъв. До сега опитвах някакви варианти, но нещо не ми се получава. Кой е най-добрия начин това да стане?
Привет, колеги! В условието пише route-a за гост и логнат потребител да е еднакъв. До сега опитвах някакви варианти, но нещо не ми се получава. Кой е най-добрия начин това да стане?
Аз го правя като закачам на scope-а функция, която проверява дали в localStorage-а има записан accessToken. След това в template-a имам 2 div-a с ng-if.
Не съм писъл грам 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
Не претендирам това да е правилният начин, нека някой по.опитен да се изкаже.
По същият начин го правя и аз, тъй като не успях да намеря по-умен вариант.
По принцип може да се подава в templateUrl-а на $routeProvider-a функция, която да връща кой темплейт да се зарежда при определени условия. Аз исках проверката за логнат юзър да се извършва от service, обаче не можах да разбера как може да се ползва service в config-а на модула...
Здравей! Аз постъпвам като теб в темплейта home.html имам 2 div-a за логнат и нелогнат user. В логин функцията обаче когато трябвеа да сменя view-то за логнат с view за нелогнат, доста се измъчих. Следните варианти не дадоха никакъв резултат: $location.path('/'), $route.reload(). В крайна сметка го хакнах ето така:
$window.location.reload('/');
Това сработи, но ми презарежда цялата страница и от там други гадости се появих дето ги позамазах. Ако имаш по-добра идея сподели :)