2014-08-31 110 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