[英]Fixing the code
您好,我想问一下是否有更好的方法将我的代码转换为更好或更快的方法? 如您所见,它是一个嵌套的 if 语句。 我希望它是较少的代码行。 有什么帮助吗?
$scope.check = function (viewLocation) {
if(viewLocation == "videos"){
$scope.icon_video = 'img/video-active.png';
$scope.icon_events = 'img/events.png';
$scope.icon_stocks = 'img/stocks.png';
$scope.icon_chat = 'img/chat.png';
}else{
if(viewLocation == "events"){
$scope.icon_video = 'img/video.png';
$scope.icon_events = 'img/events-active.png';
$scope.icon_stocks = 'img/stocks.png';
$scope.icon_stocks = 'img/chat.png';
}else{
if(viewLocation == "stocks"){
$scope.icon_stocks = 'img/video.png'
$scope.icon_stocks = 'img/events.png'
$scope.icon_stocks = 'img/stocks-active.png'
$scope.icon_chat = 'img/chat.png'
}else{
if(viewLocation == "chat"){
scope.icon_stocks = 'img/video.png'
$scope.icon_stocks = 'img/events.png'
$scope.icon_stocks = 'img/stocks.png'
$scope.icon_chat = 'img/chat-active.png'
}else{
scope.icon_stocks = 'img/video.png'
$scope.icon_stocks = 'img/events.png'
$scope.icon_stocks = 'img/stocks.png'
$scope.icon_chat = 'img/chat.png'
}
}
}
}
};
像这样的事情可能会奏效:
$scope.check = function (viewLocation) {
$img_arr = array("video","events","stocks","chat");
foreach($img_arr as $imgcurk => $imgcurv){
${"scope.icon_" . $imgcurk} = "img/" . $imgcurk;
if($imgcurk == viewLocation){
${"scope.icon_" . $imgcurk} .= "-active";
}
${"scope.icon_" . $imgcurk} .= ".png";
}
};
请注意,我尚未对此进行任何测试,但该理论适用。
改进它的一种方法是:
$scope.check = function (viewLocation) {
$scope.icon_stocks = 'img/video.png'
$scope.icon_stocks = 'img/events.png'
$scope.icon_stocks = 'img/stocks.png'
$scope.icon_chat = 'img/chat.png'
if (viewLocation == "videos") {
$scope.icon_chat = 'img/chat-active.png'
} else if (viewLocation == "events") {
$scope.icon_stocks = 'img/events-active.png'
} else if (viewLocation == "stocks") {
$scope.icon_stocks = 'img/stocks-active.png'
} else if (viewLocation == "chat") {
$scope.icon_chat = 'img/chat-active.png'
}
};
如果有可能至少有一个活动标签,那么最后一个 'else if' 可以只是一个 'else'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.