我有一个html页面,点击一个复选框会导致页面的新部分变得可见。 HTML看起来像这样:
<input id="formcheck" ng-model="collapseform" type="checkbox">Fill in the Test Form
<div id="mainformdiv" class="wizard-div" ng-show="collapseform">
<div>
<div class="main-block">
...and so on
</div>
</div>
</div>
这部分工作正常 - 默认情况下,页面的一部分是隐藏的,当我选中复选框时,会显示页面的其余部分。当我取消选择它时,页面的其余部分将再次隐藏。
在同一页面上还有一个表,当你在该表中选择一个节点时,它会调用一个控制器函数,该函数会导致设置一些内部值 - 这部分也可以工作,所以控制器似乎已经设置好了正确启动,可以调用所有功能。
我看到的问题是:我想在选择表节点时向控制器函数添加一点,除了设置内部值之外,我想要它做的是(它正确地执行),也选中复选框,并使页面的隐藏部分显示为响应。我想如果我通过javascript检查了复选框就可以完成此操作,所以我将其添加到内部值设置功能中:
if (document.getElementById("formcheck").checked == false) {
document.getElementById("formcheck").checked = true;
}
这样的工作 - 当调用那段代码时,复选框会被检查掉,但是,当我用鼠标单击复选框时,它似乎不会触发ng-show,因此隐藏的部分页面的页面不可见。为了使这项工作还有其他我需要做的事情吗?
谢谢!
答案 0 :(得分:1)
您应该能够更改模型的值。由于NgModel提供双向绑定,因此它也会监视$scope
变量。
例如做
$scope.collapseform = false
而不是
if (document.getElementById("formcheck").checked == false) {
document.getElementById("formcheck").checked = true;
}