2014-10-05 26 views
0

如果我有2周的div(爲簡單起見除去納克點擊功能)使用範圍變量與非表單元素

<div ng-class="{selected: header.type == 'percent'}" data-type="percent"></div> 
<div ng-class="{selected: header.type == 'invisible'}" data-type="invisible"></div> 

這將類的.selected應用到的div之一,取決於值$ scope.header.type

但是,我也有它,所以當我點擊不具有.selected類的div時,我從具有它的div中移除選定的類,並將其應用於只是點擊的div。

現在,在控制器上,如何獲取具有.selected類的div的數據類型?

基本上我正在嘗試設置$ scope.header.type持有的數據類型,在.selected類

就在它的需要情況下的div的價值,這裏的NG-FN點擊(這是沒有棱角狀,但我無法找到一個替代)

$scope.changeOfferbox = function($event) { 
    var selected = angular.element(document.querySelector('.selected')) 
    selected.removeClass('selected') 
    var clicked = angular.element($event.target).addClass('selected') 
} 

回答

1

一個簡單的解決辦法可能是數據類型的傳遞給你的點擊功能;這樣一來,你其實並不甚至需要手工添加/刪除類,當header.type改變納克級的指令會自動更新:

$scope.changeOfferbox = function($event, localType) { 
    if (localType !== $scope.header.type) { 
     $scope.header.type = localType; 
    } 
}; 

<div ng-class="{selected: header.type == 'invisible'}" ng-click="changeOfferbox('invisible');" data-type="invisible"></div> 
+0

這並沒有爲我工作(localType將通過爲未定義)。使用ng-click =「changeOfferbox($ event.target)」結束,並在ng-click fn內部,我抓取var type = element.attributes ['data-type']的數據類型值 – sqram 2014-10-05 22:27:29

+0

我忘了$電話中的事件,對不起。很高興你能夠解決它! – Sycomor 2014-10-06 00:53:47