在Angular

时间:2016-04-12 16:53:03

标签: javascript jquery html angularjs

我的代码有以下结构:

  1. main.html - 加载所有模块 - 声明ng-app和主控制器 - 包含div tag-load-div
  2. file1.html ...(所有其他html文件) - 仅包含<div> /子标记,并加载到load.html中,该文件位于main.html上,例如点击
  3. 现在在一个这样的文件中说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。

    我哪里错了?

3 个答案:

答案 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-modelng-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();"/>

我希望这会有所帮助。