0

我基本上試圖找出如何在角度控制器內做某個事件監聽器。更具體地說,當引導模式被解除時,我想在角度控制器內激發一個功能。在jQuery中,你通常可以這樣做:嘗試在自舉模式後啓動角度控制器內部的功能被解僱

$(.some-class).on('click', function() { 
    // do something 
}); 

我所擁有的是一個側面導航圖像作爲按鈕。當他們處於非活動狀態時,我有灰色按鈕,當他們處於活動狀態時,我有灰色按鈕每個按鈕啓動一個引導模式。

我使用:

<a type="button" data-toggle="modal" data-target="#overview" ng-click="launchOverview()"> 
    <img ng-src="{{ sideNavActive.overviewSrc }}" /><br /> 
    </a> 

,我有我的控制器對象:

$scope.sideNavActive = { 
     "overviewSrc": "img/side-nav/tab-overview-off.png", 
     "detailsSrc": "img/side-nav/tab-details-off.png", 
     "contactSrc": "img/side-nav/tab-contact-off.png" 
} 

當用戶點擊側導航按鈕中的一個,我有一個NG單擊功能將該按鈕更改爲「img /...- on.png」,使該按鈕變成紅色(激活)。當用戶點擊另一個side-nav按鈕時,它會將該按鈕變成紅色,其餘的變成灰色。

我想要做的是當用戶點擊模式周圍的褪色區域來解除它,我也希望按鈕都重置爲灰色。根據bootstrap文檔,我應該能夠在'hidden.bs.modal'事件上激發一個函數,但是我無法在我的角度控制器中使用它。我有以下功能,其中「#overview」是我的模式ID。

$('#overview').on('hidden.bs.modal', function() { 
     console.log('function fired!!!!!'); 
     $scope.sideNavActive = { 
      "overviewSrc": "img/side-nav/tab-overview-off.png", 
      "detailsSrc": "img/side-nav/tab-details-off.png", 
      "contactSrc": "img/side-nav/tab-contact-off.png" 
     } 
     }) 

但是,這個函數不會在模態被解散時觸發,我不知道爲什麼。

有一件事情我已經做了,看看是否功能實際上在聽被改成了:

$('body').on('click', function() { 
    // function code here 
} 

和它的作品。每當我點擊任何地方都會觸發,因爲它正在監聽「body」元素。所以我知道它在聽,但由於某種原因,'hidden.bs.modal'事件不起作用。

+1

不要混合jQuery與角 – Akashii

+0

@ThanhTùng如何將它轉換爲角?我做了: 'angular.element('#overview')。on('hidden.bs.modal',function(){ console.log('function fired !!!!!''); $ scope.sideNavActive = { 「overviewSrc」:「img/side-nav/tab-overview-off.png」, 「detailsS​​rc」:「img/side-nav/tab-details-off.png」, 「contactSrc 「:」img/side-nav/tab-contact-off.png「 } })' 並且它仍然不起作用。 –

+0

你嘗試使用'$ scope.launchOverview = function(){}' – Akashii

回答

1

如果您還沒有使用angular-ui-bootstrap模態:http://angular-ui.github.io/bootstrap/#!#modal。還有,當模式被解僱時執行的模式實例的回調函數:

modalInstance.result.then(function (someObj) { 
     // success 
    }, function() { 
     // this code will be executed when the modal is dismissed 
     console.log('Modal dismissed at: ' + new Date()); 
    }); 
0

想出如何火功能的角度控制模式時被駁回。

angular.element(document).find('.modal').on('hidden.bs.modal', function(){ 
    // do something 
    console.log('function fired'); 
});