我的代码有以下结构:
<div>
/子标记,并加载到load.html中,该文件位于main.html上,例如点击现在在一个这样的文件中说file3.html,我有一个复选框。单击该复选框,我想打开一个模态窗口 - 一个将被提交的表单。现在这是我的代码
file3.html
<div>
<input type="checkbox" name="your-group" value="unit-in-group" onclick="toggleModal();"/>Unit-in-group
<modal title="some title" visible="showModal">
<form role="form">
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" placeholder="Enter email" />
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" placeholder="Password" />
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</modal>
</div>
现在我在main.hml
中声明的主要主控制器中编写了以下代码$scope.showModal = false;
$scope.toggleModal = function(){
$scope.showModal = !$scope.showModal;
};
预期的行为是当我的文件3被加载时我将在屏幕上看到一个复选框,当我点击它时,它将打开一个模态窗口,但我在同一页面上看到模式窗体字段,我看到复选框。当我点击它时,我得到了角度异常,表明没有定义showModal。
我哪里错了?
答案 0 :(得分:4)
只需要使用Angular语法:ng-click
用于点击,ng-show
用于可见性。
<input type="checkbox" name="your-group" value="unit-in-group" ng-click="toggleModal();"/>Unit-in-group
<modal title="some title" ng-show="showModal">
其他选择:
您也可以使用ng-change
代替ng-click
,在这种情况下,这不会产生太大影响。
或者您可以使用ng-model
(ng-model="showModal"
)并完全摆脱切换功能Example。
答案 1 :(得分:1)
另一种方法是使用ngChange directive 检测到复选框已被检查
<input type="checkbox" name="your-group" value="unit-in-group" ng-change="toggleModal();"/>
模态代码与建议的其他答案保持一致
<modal title="some title" ng-show="showModal">
答案 2 :(得分:0)
我有类似的问题。
要检测点击,请使用Angular语法:(click)=“ toggleModal();”
<input type="checkbox" name="your-group" value="unit-in-group" (click)="toggleModal();"/>
我希望这会有所帮助。