我想要一個懸停彈出窗口,只有當我將鼠標懸停在屏幕上的一個元素上時纔會顯示。我目前正在使用$ modal模式,並認爲我可以使用它。我遇到的問題是,我不確定如何讓模式在我不再瀏覽頁面元素時消失。在模態中不需要任何動作,我只是希望它在出現在元素上時出現,當我離開元素時消失。
這裏是我的plunkr:http://plnkr.co/edit/3vWVRA0CM7vrMugImgmX?p=preview
這裏是我要找的使用jQuery的例子:http://www.sundoginteractive.com/sunblog/posts/jquery-hover-box
var myApp = angular.module('myApp', ['ui.bootstrap']);
myApp.controller('myCtrl', ['$modal', '$scope', '$log',
function ($modal, $scope, $log) {
$scope.option = {
name: 'Name (hover over for more details)',
longDescription: 'This is my detailed description... lots of text here'
}
$scope.showOptionDetails = function(option) {
$log.info($scope.option);
$scope.optionModal = $modal.open({
template: '<div class="modal-header"><h3 class="modal-title">Option</h3></div><div class="modal-body">{{option.longDescription}}</div><div class="modal-footer"></div>',
controller: 'modalCtrl',
resolve: {
option: function() {
return $scope.option;
}
}
});
}
$scope.closeOptionDetails = function() {
$scope.optionModal.close();
}
}
]);
myApp.controller('modalCtrl', [
'$modalInstance', '$scope', '$log', 'option', function ($modalInstance, $scope, $log, option) {
$log.info(option);
$scope.option = option;
}
]);
鼠標離開事件不發射的原因是因爲'ng-mouseleave =「closeOptionDetails」'應該是'ng-mouseleave =「closeOptionDetails()」'。但是,當模式一創建就消失,你仍然不會獲得你想要的行爲。一個popover會滿足你的需求嗎? –
是的,我認爲popover可以滿足我的需求。儘管有長文本和圖像的多個字段,其中一些可能會變得複雜。我可以使用彈出式模板嗎? –
我已經放棄了與HTML模板的彈出窗口。網上太多的例子,只是不工作。猜猜我將不得不要求用戶點擊一個按鈕,並獲得傳統的模式。 –