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'); 
});