AngularJS-图片“加载”事件

我一直在寻找一个简单但并非琐碎的问题的答案:onload仅使用jqLit​​e在Angular中捕获图像事件的正确方法是什么?但是我想要一些指令解决方案。 因此,正如我所说,这对我来说是不可接受的:

.controller("MyCtrl", function($scope){

// ...

img.onload = function () {

// ...

}

因为它在控制器中,而不在指令中。

回答:

这是angular内置事件处理指令样式的可重用指令:

angular.module('sbLoad', [])

.directive('sbLoad', ['$parse', function ($parse) {

return {

restrict: 'A',

link: function (scope, elem, attrs) {

var fn = $parse(attrs.sbLoad);

elem.on('load', function (event) {

scope.$apply(function() {

fn(scope, { $event: event });

});

});

}

};

}]);

触发img load事件时,将在当前作用域中将sb-load属性中的表达式与load事件一起评估,并作为$ event传入。使用方法如下:

<div ng-controller="MyCtrl">

<img sb-load="onImgLoad($event)">

</div>

  .controller("MyCtrl", function($scope){

// ...

$scope.onImgLoad = function (event) {

// ...

}

注意:“ sb”只是我用于自定义指令的前缀。

以上是 AngularJS-图片“加载”事件 的全部内容, 来源链接: utcz.com/qa/416179.html

回到顶部