Angularjs:虽然ng-click触发器,但是不会触发toggleMenu()控制器方法

时间:2014-08-31 17:47:43

标签: angularjs angularjs-scope

这是片段。当我点击td时,设置了ng-click-active(如下所示),但是没有触发$ parent.toggleMenu():

<td class="bigmacButton toggleMenu ng-click-active" ng-click="$parent.toggleMenu()">
    <div></div>
</td>

我最初有ng-click =&#34; toggleMenu()&#34;但我怀疑范围问题。我甚至试过$ parent。$ parent.toggleMenu()但没有成功。

我坚持这个。你会尝试诊断问题然后修复?我真的需要一种调查方法。

[编辑1]

我忘了提到它在Safari / Mac上运行良好,但问题出现在iPad / iOS上。

[编辑2]

在相同的代码环境(App)中,我复制了标记,将其放在DOM的其他位置并且可以正常工作。这应该证明它是一个范围问题,不是吗?

[编辑3]

我的调查让我发现了触发问题的原因。 td代码之后是另一个ng-class,如下所示。当我删除ng-cass时,toggleMenu()可以正常工作! 从此,我试图设置&#39; on&#39;或者&#39;关闭&#39;在检查器中手动进行分类,这会使问题再次出现!别了不起。

                    <td 
                        class="bigmacButton toggleMenu" ng-click="toggleMenu()"
                        style="vertical-align: top; padding-top: 10px">
                        <div></div>
                    </td>

                    <td 
                        nng-class="{'on':config.keynote, 'off':!config.keynote}"
                        class="keynoteButton"
                        style="vertical-align: top;"
                        ng-hide="getPage()=='/settings'"
                        ng-click="config.keynote=!config.keynote">
                        <div style="-webkit-filter: invert(100%); -webkit-transform: translateZ(0);"></div>
                    </td>

提前致谢。

1 个答案:

答案 0 :(得分:0)

要使用Chrome浏览器调查此问题,我建议使用Batarang(https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en)。它是Chrome扩展程序,可让您检查角度范围,并允许您调试应用程序=)

与您的问题相关,如果您提供更多信息或提供问题,我们可能会尝试为您提供更多帮助,可能就像HTML的那个区域的错误控制器一样简单,或者像范围问题一样复杂,因此提供如果您想要更准确的帮助,请提供信息=)

祝你好运!