2015-03-19 29 views
0
一些條件使範圍的變量在控制器

我在Angularjs控制器代碼如下:如何基於在Angularjs

$scope.validElements = [          
           { 
            "id": "One",    
           }, 
           { 
            "id": "Two", 
           }, 
           { 
            "id": "Three", 
           }, 
           { 
            "id": "Four", 
           } 
          ]; 

我怎樣才能讓validElements根據病情 (if(someService.someElement == "ABC"))然後

$scope.validElements = [          
           { 
            "id": "One",    
           }, 
           { 
            "id": "Three", 
           }  
         ]; 
是不同的

否則

$scope.validElements = [          
           { 
            "id": "One",    
           }, 
           { 
            "id": "Two", 
           }, 
           { 
            "id": "Three", 
           }, 
           { 
            "id": "Four", 
           } 
         ]; 

PLE如果有可能或者有任何粗略的想法,可以提出建議

+0

您是否希望將'$ scope.validElements'綁定到'someService.someElement'? – 2015-03-19 04:38:45

+0

@WilliamGaul:是的,我的意思是這個條件是基於'someService'中的一些元素。 – 2015-03-19 04:40:50

回答

1

看來你想創建另一個作用域變量,並將其設置爲someService,然後在someSome元素上放置一個監視器。然後,您可以在監視功能中處理該情況。我這樣做是爲了觀察服務變量

$scope.validElements = [ // set default here    
     { 
      "id": "One",    
     } // ... 
    ]; 
    $scope.someService = someService; 
    $scope.$watch('someService.someElement', function(newValue, oldValue) { 
     // or a switch statment 
     if(newValue == 'ABC'){ 
      $scope.validElements = [          
        { 
         "id": "One",    
        }, 
        { 
         "id": "Three", 
        }  
      ]; 
     }else{ 
      // handle else condition 
      $scope.validElements = [          
        { 
         "id": "One",    
        }, 
        { 
         "id": "Two", 
        }, 
        { 
         "id": "Three", 
        }, 
        { 
         "id": "Four", 
        } 
      ]; 
     } 
    }); 

希望這有助於!祝您好運

+0

我會試着用這個來實現並且會讓你知道。感謝您的及時回覆。 :) – 2015-03-19 04:47:13