2016-04-18 46 views
0

我正在嘗試在X3DOM中使用angular.js。我希望能夠創建一個形狀(在這種情況下是一個球體),並讓它在用戶點擊時做一些事情。我已經能夠使用傳統的onclick方法使其工作。但是,當我切換到角度的ng-click時,事件無法觸發。不幸的是,由於我想要顯示的數據存儲在控制器中,使用角度onclick是必須的。ng-click X3Dom shape

我已經做了一些研究,據說angular.js與X3DOM不是100%兼容,所以我猜這是問題的一部分。但我一直在使用其他角度指令沒有問題。有誰知道是否有解決此錯誤的方法?

代碼示例:

<transform translation="{{datum['Market Loading']}} {{datum['Growth Loading']}} {{datum['Size Loading']}}" ng-repeat="datum in energy.data" ng-hide="energy.hide === true" onclick=""> 
    <shape> 
     <appearance> 
      <material class="energy" diffuseColor="{{energy.color.join(' ')}}" transparency="{{energy.hide}}"></material> 
     </appearance> 
     <sphere radius="{{datum['Specific Risk']}} ng-click="DO SOMETHING"></sphere> 
    </shape> 
</transform> 
+0

你可以創建一個plnkr嗎? –

回答

0

我猜你需要使用標準的onclick事件,如X3DOM需要在畫布上點擊事件轉換到標籤內的實際節點和x3dom不知道abaout NG-單擊。 在您的標準onclick處理程序中,您可以從那裏檢索角度範圍aganain fire您的角度點擊處理程序。

像這樣的東西(untestet):

<sphere radius="{{datum['Specific Risk']}} onclick="myclick(event)"></sphere> 

和標準onclick事件處理程序:

function myclick(event) { 
    // TODO: add more error handling 
    var scope = angular.element(event.target).scope(); 
    scope.yourAngularClickHandler(event); 
} 

這是一個有點醜陋和正從DOM元素範圍的每次點擊也緩慢。我正在做一件類似onmousemove事件,速度還可以。不要忘記添加一些錯誤處理的情況下,範圍沒有準備好或無法找到等。