2013-07-14 43 views
0

我在網格中顯示數據,點擊活動或不活動按鈕我必須更改按鈕,功能正常,更改圖標我無法找到活動的單擊按鈕,jQuery中我們可以使用「這個」,但在角JS不知道,請幫助

$scope.activeSource = function(datasource,status) 
       { 

         $scope.loading = true; 
         $scope.activeInfo = { 
           datasource:datasource, 
         }; 
         $scope.alerts = []; 
         if(status == "Stopped") 
         { 
          $scope.entityService.activeInfo($scope.activeInfo, 
          function(msg) // success 
          { 
           $scope.loading = false; 
           $rootScope.successMsg.push(msg); 
           $('.icon-play').hide(); // this. 
           $('.icon-stop').show(); // this. no idea 

          }, 
          function(msg) // error 
          { 
           $scope.loading = false; 
           $rootScope.successMsg.push(msg); 
          } 
         ); 
+0

您正在使用ng-click?或者你如何在這些按鈕上設置點擊處理程序? – Krab

+0

是的,我使用ng-click,它在ng-grid中ng-click =「activeSource(row.entity.dataSource) – Prashobh

回答

3

你並不需要使用this訪問按鈕。相反,在您的控制器中創建一個JavaScript對象,該對象包含按鈕的所有屬性。事情是這樣的:

$scope.myButton = { 
    src : 'foobar.png', 
    isVisible : true 
}; 

然後,像這樣定義您的按鈕:

<img ng-src="myButton.src" ng-show="myButton.isVisible" /> 

現在,當您要修改按鈕的任何屬性,你只需要改變的JavaScript對象myButton,和角會照顧更新實際的按鈕。

例如,如果你想隱藏的按鈕:

// you don't need to do this 
// $('#myButton').hide(); 

// instead just do this 
$scope.myButton.isVisible = false; 

同樣,你可以改變圖像的src爲好。

+0

如果他有1000個按鈕嗎? – Krab

+1

然後他可能需要考慮重新設計他的UI。對於你的問題,他可以期待UI的下降,谷歌自己承認,當你接近約1000個綁定時,Angular會遇到緩慢的下降,如果你期待這麼多的綁定,那麼Angular不是正確的選擇。你應該考慮一些像Backbone那樣的不運行摘要循環的東西。 – xbonez

相關問題