в основном у меня есть список 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:
}
Я думаю, что это будет создание некоторой функции отображения и обратного вызова, например:
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);