2015-05-19 3 views
0

in Angular Я хочу вернуть header.tpl.html, если загруженная страница не задана $state. Похоже, что самый простой способ - это оператор switch. В этом случае я хочу вернуть header.tpl.html, если текущее состояние не является состоянием 1,2 или 3.

Какое значение следует подключать для expression? Кроме того, есть ли лучшие способы проверить текущее состояние?

$scope.menuRender = function() { 
     switch (expression) { 
     case $state.is('state1'): 
     return; 
     break; 
     switch 
     case $state.is('state2'): 
     return; 
     break; 
     switch 
     case $state.is('state3'): 
     return; 
     break; 
     default: 
     return "header.tpl.html"; 
     } 
    }; 

Спасибо!

ответ

1

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

$scope.menuRender = function() { 
    switch ($state) { 
    case ('state1'): 
     return 'header-alt1.tpl.html'; 

    case ('state2'): 
     return 'header-alt2.tpl.html'; 

    //...etc... 

    default: 
     return "header.tpl.html"; 
    } 

};

+0

Что здесь происходит, в этом случае '' 'switch''' просто проверяет свойства в' '' '$ state'''? –

+0

Каждый коммутационный регистр идентичен оператору if ($ state = 'state1') {} ". Я не знаю, какая информация содержится в вашем состоянии. Вам, вероятно, потребуется изменить его в соответствии с вашими потребностями. Это скорее псевдокод-ответ, чем то, что вы можете просто скопировать/вставить. –

+0

Получил это. Отличное направление. Спасибо! –

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