2016-02-24 54 views
-2

我對這個問題感到非常困惑: 我有一個Angular應用程序,我想用一個簡單的JavaScript字符串更新來更改類,其中類名綁定到DOM。 最奇怪的是,在我的應用程序中,用於更改文本的最簡單語句不起作用,但如果我在控制檯的chrome中運行完全相同的行,則文本會發生更改。爲什麼這個聲明不適用於我的應用程序?還有其他事情正在發生還是我錯過了什麼?在Angular應用程序中的奇怪的JavaScript錯誤

$scope.changesize = function() { 
      var fsize = $scope.form_size.split("-").pop(); // "form-group-xs"; 

      if (fsize == "xs") {fsize = "sm"}; //fsize = "xs"; 
      if (fsize == "sm") {fsize = "md"}; 
      if (fsize == "md") {fsize = "lg"}; 
      if (fsize == "lg") {fsize = "xs"}; 
      $scope.form_size = "form-group-" + fsize; 
      console.log($scope.form_size); // returns "form-group-xs" !!??!!!?! 
     } 

這裏是我的控制檯的屏幕截圖作爲證明: console http://imgur.com/xwIjtuT

+0

您應該避免使用範圍對象當過就可以了。它在2.0中被刪除,所以它已經是避免它的最佳實踐。 –

回答

3

請使用if else,而不是if。問題是所有的if都成立,所以最後fsize被分配到xs

0

交換機也可以在此使用:

var fsize = $scope.form_size.split("-").pop(); 
switch (fsize){ 
    case "xs": 
     fsize = "sm"; 
    break; 
    case "sm": 
     fsize = "md"; 
    break; 
    case "md": 
     fsize = "lg"; 
    break; 
    case "lg": 
     fsize = "xs"; 
    break; 
} 

$scope.form_size = "form-group-" + fsize