Я пытаюсь реализовать функцию всплывающей подсказки внутри моей фабрики, но сталкиваюсь с проблемой при вызове событий ng-mouseenter и ng-mouseleave как внутри фабрики. Просьба указать, как действовать.ng-mouseenter не работает внутри фабрики AngularJs
Код: HTML:
<DOCTYPE html>
<html ng-app="demoApp">
<head>
<title>Mouseevent - Second</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-beta.1/angular.min.js"></script>
<script type="text/javascript" src="app.js"></script>
<style>
.red{
background-color: red;
}
.show{
background: lightgray;
border: 1px solid black;
position: absolute;
z-index: 98;
}
</style>
</head>
<body ng-controller="demoController">
<div ng-bind-html="fromFactory"></div>
</body>
</html>
App.js
var app = angular.module('demoApp',[])
app.controller('demoController',function($scope,$sce,hoverFactory){
$scope.fromFactory = hoverFactory.demo();
$scope.onMouseEnter = function(evt){
$scope.hovered = true;
$scope.mouse = {
'left': evt.pageX + 10 + 'px' ,
'top': evt.pageY + 10 + 'px'
}
};
$scope.onMouseLeave = function(){
$scope.hovered = false;
}
});
app.factory('hoverFactory',function($sce){
return{
demo:function(){
var template = '<div ng-class="{red: hover}" ng-mouseenter="onMouseEnter($event)"'+
'ng-mouseleave="onMouseLeave()" > "Hover mouse on me to make tooltip move! "</div>' +
'<div class="show" ng-show="hovered" ng-style="mouse" ng-init= "hover=false">movable tooltip</div>';
var result = $sce.trustAsHtml(template);
return result;
}
}
});
Пожалуйста, руководство людей, я застрял
Что ты пытаешься сделать? Вам нужно скомпилировать любой html для углового подключения событий и т. Д. Кроме того, это не то, что вы сделали бы на заводе – sirrocco
. Я согласен с вами, здесь я пытаюсь добавить функцию всплывающей подсказки на существующую код. Я не уверен, как вызвать функцию для получения координат x и y для всплывающей подсказки – naah