如何在Angularjs中给出$ this

时间:2013-07-14 09:17:14

标签: javascript jquery angularjs

我在网格中显示数据,点击活动或非活动按钮我必须更改按钮,功能正常,更改图标我无法找到活动的点击按钮,在jquery中我们可以使用“< strong> this “,但在角度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);
                            }
                        );

1 个答案:

答案 0 :(得分: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。