Хорошо, я немного... смущен этим плагином. Я добавил скрипт в конце тела
<body>
<div id="first">
//a lot of text
</div>
<div id="second">
//more text
</div>
<div id="leo">
//here is where the plugin should work
</div>
</body>
<script src="js/jquery.appear.js"></script>
</html>
это то, что у меня есть в файле js
app.controller('comparativaCtrl', function ($scope, $rootScope, $routeParams, $location, $http, Data)
{
$('#leo').appear();
$(document.body).on("appear", "#leo", function() {
alert("al fin");
});
});
Однако ничего не происходит... Я проверил, и у меня есть jquery, и, кроме того, это не требует зависимостей, насколько я знаю.... Обратите внимание, что app.controller используется, потому что мой js-код находится в контроллере частичный (я использую Angular). Если кто-нибудь знает, почему это не работает, пожалуйста, дайте мне знать
Вы всегда должны выполнять манипуляции с DOM в директиве. Вот пример, чтобы создать и использовать его.
app.directive('appearWrapper', [
function() {
return {
restrict: "A",
link: function(scope, element, attrs) {
$(element)
.appear()
.on('appear', function() {
//Do the needful
});
}
};
}
]);
Применение
<div appear-wrapper>
//here is where the plugin should work
</div>
Хорошая статья jQuery Plugin в угловом приложении и "Мышление в AngularJS", если у меня есть фон jQuery?
Создайте новый файл directives.js и добавьте туда все свои функции jquery. В файле.cshtml просто укажите название директивы. Пример: customdirective.js
angular.module('directiveName', []).directive('appear', ['$window', function ($window) {
return function (scope, element, attr) {
var wndw = angular.element($window);
scope.initAppear = function () {
//your code
}
}]);
Flower.cshtml:
<body>
<div id="first">
//a lot of text
</div>
<div id="second">
//more text
</div>
<div id="leo" appear>
//here is where the plugin should work
</div>
</body>
</html>