2014-07-11 66 views
1

我有這個非常奇怪的問題,來自無處,ng-click不再觸發動作。爲什麼ng-click不會觸發動作,而ng-click-active被設置雖然

從瀏覽器中查看生成的內容如下。我看到了hg-click-active,它說明了水龍頭被考慮在內。 togglemenu()是控制器範圍方法。

最後說明:這項工作在Safari Mac上,但不在iPad iOS7上(實際上是7.1.1)。

該問題達到兩個ng-clicks,不會打開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> 
+0

你能提供一個小提琴或plunkr? – Raghavendra

+0

很難在一個孤立的例子中重現。仍然嘗試...有沒有一種方法來invoque普通的JavaScript函數,以便我可以調用JavaScript警報而不是我的主控制器警報方法?我只是想確保它是(或不是)範圍問題。 @Raghav –

回答

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(); 
    } 
    
+0

正如問題所述,這是GENERATED dom,而不是我編程的東西。 alert()是一個範圍的方法。 @Raghav –

相關問題