为什么在设置ng-click-active时ng-click不会触发操作

时间:2014-07-11 16:01:35

标签: angularjs angularjs-ng-click

我有一个非常奇怪的问题,来自无处,ng-click不再触发动作。

从浏览器中查看生成的内容,如下所示。我看到hg-click-active告诉了tap被考虑在内。 togglemenu()是控制器范围方法。

最后一点:这可以在Safari Mac上运行,但不适用于iPad iOS7(实际上是7.1.1)。

问题达到了两次ng-click,没有打开alert()。 ng-enter有效。

有什么想法吗?有什么路要走?

[编辑1] alert()是我的代码中的范围方法。我觉得这不对。有没有办法检查这个?

<nav id="navBarHome" class="ng-scope">
        <table>
            <tbody>
                <tr>
                    <td class="bigmacButton toggleMenu" style="vertical-align: top; padding-top: 10px">
                        <div ng-click="alert('tapped'); toggleMenu()" class="ng-click-active"></div>
                    </td>
                    <td class="keynoteButton off" style="vertical-align: top;" ng-hide="getPage()=='/settings'" ng-class="{on:config.keynote, off:!config.keynote}">
                        <div ng-click="alert('tapped'); config.keynote=!config.keynote"></div>
                    </td>

                    <td style="width:150px">
                    </td>

                    <td style="width:40%">
                        <input style="width:80%" ng-model="search.keyword" size="70" type="search" results="5" placeholder="symptôme, maladie, etc." ng-enter="openPage('search')" class="ng-pristine ng-valid">
                    </td>

                    <td style="width:215px; padding-right:20px" ng-click="openPage('corporate')">
                        <img id="service" style="width:215px" src="rsc/home/Service.png">
                    </td>
                </tr>
            </tbody>
        </table>
    </nav>

1 个答案:

答案 0 :(得分:0)

  1. 您无需向元素添加ng-click-active。 CSS类 当元素存在时,ng-click-active由指令设置 按住(通过鼠标点击或触摸),这样你就可以重新开始了 郁闷的元素如果你愿意。见docs

  2. JavaScript表达式和本地函数,例如parseIntalert 不会在角度表达式内运行。

    ng-* = "angular_expression_only"
    

    请参阅Angular Expressions vs. JavaScript Expressions

    这不会起作用:

    ng-click="alert('tapped'); toggleMenu()"
    

    这将有效:

    ng-click="my()"
    
    // in your controller
    $scope.my = function() {
        alert('tapped');
        toggleMenu();
    }