繁体   English   中英

修复代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM