【问题标题】:How ot give $this in Angular js如何在 Angularjs 中给出 $this
【发布时间】:2013-07-14 09:17:13
【问题描述】:

我在网格中显示数据,单击活动或非活动按钮时我必须更改按钮,功能工作正常,更改图标我无法找到活动单击按钮,在 jquery 中我们可以使用“this”,但不知道 angular 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);
                            }
                        );

【问题讨论】:

  • 你正在使用 ng-click??或者你如何在这些按钮上设置点击处理程序?
  • 是的,我正在使用 ng-click,它在 ng-grid ng-click="activeSource(row.entity.dataSource)

标签: javascript jquery angularjs


【解决方案1】:

您无需使用this 即可访问该按钮。相反,在您的控制器中创建一个包含按钮所有属性的 javascript 对象。像这样的:

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

然后,像这样定义您的按钮:

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

现在,当你想修改按钮的任何属性时,你只需要改变javascript对象myButton,Angular会负责更新实际的按钮。

例如,如果你想隐藏按钮:

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

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

同样,你也可以改变图片的src。

【讨论】:

  • 如果他有 1000 个这样的按钮?
  • 那么他可能需要考虑重新设计他的 UI。在回答您的滑稽问题时,他可以预期 UI 会变慢。谷歌自己承认,当你接近 1000 个绑定时,Angular 会变慢。如果您期望有这么多绑定,那么 Angular 不是正确的选择。您可能应该考虑不运行摘要循环的 Backbone 之类的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 2014-01-15
  • 2014-11-17
  • 2015-01-08
  • 2018-04-09
  • 1970-01-01
相关资源
最近更新 更多