2013-07-14 37 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

相关问题