ng-show在范围内不起作用

时间:2015-01-22 11:46:21

标签: angularjs angularjs-directive

我正在尝试使用angular来显示/隐藏某些内容,但是当它通过$scope调用时它无效。如果我用ng-model更改show变量,它可以正常工作。

<div id="editClient"
     class="accordeon panel-group" 
     role="tablist" 
     aria-multiselectable="true" 
     ng-show="show">
     ....
</div>

在我的脚本中,这不起作用。

client.controller('clientController', function($scope) {
  $scope.show = true;

  $scope.test = function() {
    alert('clicked'); 
    $scope.show = true;
}

显示“已点击”,我也尝试使用$apply,但结果是相同的。

但是当我使用ng-model时,它可以正常工作

<input type="checkbox" value="true" ng-model="show">

有人能解释一下为什么它不适用于$scope.show吗?

2 个答案:

答案 0 :(得分:1)

调试。

以下工作正常,使用控制器中的ng-bind和按钮触发功能复选框。

<input type="checkbox" ng-model="show">Toggle visibility
<br>
<button type="button" ng-click="toggle()">Toggle visibility</button>
<hr>
<div ng-show="show">Visible</div>
<div ng-show="!show">Hidden</div>

app.controller('Ctrl', function($scope, $http) {
  $scope.show = true;

  $scope.toggle = function() {
    $scope.show = !$scope.show;
  };
});

答案 1 :(得分:0)

以下使用$scope正常工作。见jsfiddle

http://jsfiddle.net/ffKTy/312/