首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在Angular.JS中申请

问正在Angular.JS中申请
EN

Stack Overflow用户
提问于 2013-05-29 20:54:30
回答 2查看 1.2K关注 0票数 0

我有angularjs应用程序和<span>在里面。我尝试用ng-hide指令来隐藏它,但是:

代码语言:javascript
复制
<span ng-hide="hideSpan">

和

代码语言:javascript
复制
// controller code here
....
$scope.hideSpan = true;
....

不起作用,那就是忽略。如果我做了:

代码语言:javascript
复制
// controller code here
....
$scope.$apply(function(){$scope.hideSpan = true});
....

我收到错误:$apply已在进行中。

如何正确使用这种方式的ng-hide/ng-show?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-29 22:37:22

你应该能够直接从你的控制器控制隐藏/显示功能,就像你展示的那样。下面是使用按钮触发隐藏显示切换的工作示例。

代码语言:javascript
复制
<!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@1.1.5" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="myapp" ng-controller="mycontroller">
    <span ng-hide="hideSpan">Some Content to hide</span>
    <button ng-click="toggleHide()"/>Toggle Hide</button>
  </body>

</html>

还有剧本。

代码语言:javascript
复制
angular.module('myapp', []).controller('mycontroller', function($scope){
  $scope.hideSpan = true;

  $scope.toggleHide = function(){
    if($scope.hideSpan === true){
      $scope.hideSpan = false;
    }
    else{
      $scope.hideSpan = true;
    }
  }

  });

我已经在http://plnkr.co/edit/50SYs0Nys7TWmJS2hUBt?p=preview上创建了一个简单的柱塞来展示这一点。

至于为什么$apply会导致错误,这是意料之中的,因为直接作用域(由$scopeProvider提供)变量操作已经在监视更改,并封装到核心角度中的各种默认应用中,因此任何更改都将自动应用于该变量的其他绑定。

票数 1
EN

Stack Overflow用户

发布于 2013-08-12 19:11:08

您只需在ng-click中更改hideSpan值,即可省去几行代码。干杯

代码语言:javascript
复制
<!DOCTYPE html>
<html>

  <head>
    <script data-require="angular.js@1.1.5" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="myapp" ng-controller="mycontroller">
    <span ng-hide="hideSpan">Some Content to hide</span>
    <button ng-click="hideSpan=!hideSpan"/>Toggle Hide</button>
  </body>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16814479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档