2014-08-31 111 views
0

这是摘录。当我点击了TD的NG单击主动设置(如下图所示),但$ parent.toggleMenu()不开除:Angularjs:虽然ng-click触发器,toggleMenu()控制器方法未被触发

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

我原本NG-点击=“toggleMenu() “但我怀疑是范围问题。我甚至尝试过$ parent。$ parent.toggleMenu(),但没有成功。

我被这个困住了。你会尝试诊断问题然后修复?我真的需要一个调查方法。

[编辑1]

我忘了提,这非常适用在Safari/Mac上,但问题是目前在iPad/iOS版。

[编辑2]

在相同的代码环境(应用程序),我复制的标签放在别处在DOM和它的作品。这应该是一个证明这是范围问题,不是吗?

[编辑3]

我的调查使我的地步,我发现什么触发的问题。 td代码之后是另一个ng类如下所示的代码。当我删除ng-cass时,toggleMenu()起作用! 由此,我试图在检查员手动设置'开'或'关'类,这使得问题再次出现!不明白。

    <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> 

在此先感谢。

+0

您是否在应用程序中使用'ng-touch'作为依赖项?如果是,那么'ng-click'指令元素是否包含在另一个'ng-click'指令的元素中? – ryeballar 2014-09-01 00:43:37

+0

我确实使用了ng-click。但是,唉,没有ng-click嵌入。 – 2014-09-01 21:23:46

回答

0

要使用Chrome浏览器调查问题,我会推荐使用Batarang(https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en)。这是一个Chrome扩展,可以让你检查角度范围,并让你调试你的应用程序=)

与你的问题相关,如果你提供更多的信息或问题的小提琴,我们可能会尽力帮助你,就像错误的控制器那样简单的HTML区域或复杂的范围问题,所以提供信息,如果你想更准确的帮助=)

祝你好运!

+0

我很乐意为您提供小提琴,但不幸的是,我无法重现它。该代码适用于我的Mac(Safari或Chrome)。但不是在iPad上。 – 2014-08-31 19:00:51