设置复选框值后,ng-show不起作用

时间:2017-07-29 12:29:22

标签: angularjs angularjs-ng-show

我有一个复选框,在点击时显示/隐藏图表。当我在控制器中更改其单击属性时,单击按钮但图形不会显示。

我使用的html部分如下;

<div class="panel panel-default">
   <div class="col-xs-6 col-md-4">
      Graph
      <input type="checkbox" ng-model="visibleGraph" id="graph_check">
   </div>
</div>
<div class="panel panel-default" ng-show="visibleGraph">
   <div class="panel-heading">Graph</div>
   <div class="panel-body">
      <canvas id="line" class="chart chart-line" chart-data="graph_data"
         chart-labels="graph_labels" chart-series="series" chart-options="options"
         chart-dataset-override="datasetOverride" chart-click="chartClicked">
      </canvas>
   </div>
</div>

以及我如何在控制器中设置其值;

document.getElementById("graph_check").checked=true;

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:2)

直接从jQuery处理scope / DOM值不会使AngularJS摘要周期系统更新以更新页面上的绑定,在这种情况下,您必须手动运行摘要周期(尽管更新scope来自控制器的/ DOM是反模式的。

您可以直接设置visibleGraph值,尽管在DOM中设置了值。

$scope.visibleGraph = true

另外,我强烈建议您阅读“Thinking in AngularJS” if I have a jQuery background?"