цикл через массив с оператором Switch

0

в основном у меня есть список URL, показывающий разные вещи. В одном URL-адресе есть много дополнительных частей.
Вместо того, чтобы делать много разных операторов switch. Мне было интересно, может ли использовать массив. Поэтому, когда я нажимаю на btn, у меня есть раскрывающийся список с URL-адресом end/explorer/, это всегда меняется.

 var exploreAddedLink = ["a", "b", "c", "d", "e" , "f"];

  switch (locationUrl) {
          case '/channels':
              $scope.contentLink = "Edit this Channel";
              $scope.one = "tags";
              $scope.two = "channel";
            break;
          case '/explore/'+exploreAddedLink+'':
              $scope.contentLink = "Title";
              $scope.one = "tags";
              $scope.two = "";
            break;
            case '/all-videos':
                $scope.contentLink = "Edit this Video";
                $scope.one = "videos";
                $scope.two = "";
              break;
          default:

        }
Теги:

1 ответ

0

Я думаю, что это будет создание некоторой функции отображения и обратного вызова, например:

var exploreAddedLink = ["a", "b", "c", "d", "e" , "f"];

var urls = {
  '/channels': function($scope){
    $scope.contentLink = "Edit this Channel";
    $scope.one = "tags";
    $scope.two = "channel";
},
  '/all-videos': function($scope){
    $scope.contentLink = "Edit this Video";
    $scope.one = "videos";
    $scope.two = "";
}};

angular.forEach(exploreAddedLink, function(extraLinkPart){
  urls['/explore/'+extraLinkPart] = exploreAction;
});

function exploreAction ($scope){
  $scope.contentLink = "Title";
  $scope.one = "tags";
  $scope.two = "";
}

/*use*/

urls[locationUrl]($scope);

редактировать

Вы можете функционировать, чтобы получить правильное действие:

function getUrlAction(url){
   if(url){
     return urls[url];
   }

   return function(){};
}

/*use*/
getUrlAction(locationUrl)($scope);
  • 0
    Спасибо за это, что если страница загружает URL, которого нет в списке? {{contentLink}} не появится?
  • 0
    @ ronoc4 посмотри на добавленную часть;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню