javascript – AngularJS – 图片“onload”事件

我一直在寻找一个简单的,但不是微不足道的问题的答案:什么是正确的方法捕捉图像的onload事件在Angular只有与jqLit​​e?我发现this question,但我想要一些解决方案与指令。
所以我说,这不接受我:

    .controller("MyCtrl", function($scope){
        // ...
        img.onload = function () {
            // ...
        }

因为它在控制器中,不在指令中。
谢谢,并有一个美好的一天。

这里是一个可重复使用的指令在角的内置事件处理指令的风格:

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加载事件触发时,sb-load属性中的表达式将与load事件一起在当前作用域中求值,load事件作为$ event传递。以下是使用方法:

HTML

<div ng-controller="MyCtrl">
  <img sb-load="onImgLoad($event)">
</div>

JS

  .controller("MyCtrl", function($scope){
    // ...
    $scope.onImgLoad = function (event) {
        // ...
    }

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

http://stackoverflow.com/questions/17547917/angularjs-image-onload-event

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – AngularJS – 图片“onload”事件