2015-03-03 5 views
2

У меня есть условие js, которое работает, но мне интересно, есть ли лучший способ сделать это. Мой код проверяет, не был ли пользователь зарегистрирован, а затем скрывает мобильное меню.if and else condition alternative

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

   if (acs.user.loggedin == false) { 
        $("a.navbar-toggle.icon").hide(); 
        $("#my-menu").show(); 
       } 

Хорошо работает, кроме случаев, когда пользователь выходит из системы после визуализации страницы. acs.user.loggedin - это объект из api, поэтому я не могу его потрогать. Я должен сделать все на своем конце. Дайте мне знать, если есть что-то я могу сделать

+1

Скрытие/отображение элементов на основе клиентской стороны javascript, как правило, относительно небезопасен и часто лучше выполняется с помощью сценария на стороне сервера. С учетом сказанного, не можете ли вы просто обновить страницу при выходе из системы или перенаправить их на другую страницу после выхода из системы? Если нет, то можете ли вы не добавить скрытие/показ в методе выхода, который вы вызываете? –

+1

@Dave Goten: у вас есть список комментариев. Только автор может изменить свои комментарии. Вы скрываете кнопку «edit» с помощью JS. Это ** не ** небезопасно, так как конечная точка «edit» известна в любом случае. – zerkms

+0

@DaveGoten Я не могу прикоснуться к api, ссылка выхода из системы работает только без обновления страницы. Я надеялся, что есть способ проверить, изменился ли acs.user.loggedin, а затем создать действие. –

ответ

0

решаемые с помощью принудительного обновления! В основном обновите страницу при выходе из системы, чтобы отобразить соответствующий экран. через @daveguten

-4

Вы можете использовать оператор переключения

switch(acs.user.loggedin){ 

    case false: $("a.navbar-toggle.icon").hide(); 
         $("#my-menu").show(); 
        break; 


    } 
+0

Можете ли вы объяснить, почему downvoting? – cssGEEK

+0

Просьба привести некоторые обоснования вашего ответа. «если есть лучший способ сделать это» - почему, по вашему мнению, следует предпочесть писать его таким образом. – zerkms

+0

Проблема, которую он видит, на самом деле больше этого. Его «решение» совершенно небезопасно, если это делается с использованием Javascript (который является клиентской стороной). Хорошим решением должно быть одно, дающее ему пример на стороне сервера. –