相关疑难解决方法(0)

AngularJS指令:在一个属性中放置一个调用函数,不包含另一个属性

我在追求什么

我想ngLoad在我的网页上为图像创建一个指令.这是我的首选标记:

<img ng-src="{{ src }}" ng-load="onLoad()">
Run Code Online (Sandbox Code Playgroud)

是)我有的

的jsfiddle

现在,我有一个指定的imgLoad指令,如下所示:ngLoadscope

var app = angular.module('app', []);

app.directive('imgLoad', [function() {
    return {
        restrict: 'A',
        scope: {
            loadHandler: '&ngLoad'
        },
        link: function (scope, element, attr) {
            element.on('load', scope.loadHandler);
        }
    };
}]);
Run Code Online (Sandbox Code Playgroud)

生成的标记是:

<img ng-src="{{ src }}" img-load ng-load="onLoad()">
Run Code Online (Sandbox Code Playgroud)

编辑:我之前认为指令的名称(即imgLoad)需要与我的属性名称(即ngLoad)不同.不是这种情况.解决方案是命名我的指令ngLoad.

需要改变什么

我想摆脱imgLoad属性.ngLoad无论其他任何属性,我都想工作.

我已经看到了什么

我的实施基于:

任何帮助深表感谢!

javascript angularjs angularjs-directive

13
推荐指数
1
解决办法
3万
查看次数

以angular.js显示其实际大小的图像

我需要以实际尺寸显示图像,即使它比容器大.我尝试了使用Image变量并在加载捕获大小的技巧,如下所示:

HTML:

<div ng-controller="MyCtrl">
    <input ng-model="imageurl" type="url" />
    <button ng-click="loadimage()" type="button">Load Image</button>
    <img ng-src="{{image.path}}"
        style="width: {{image.width}}px; height: {{image.height}}px" />
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

.controller("MyCtrl", ["$scope", function ($scope) {
    $scope.image = {
        path: "",
        width: 0,
        height: 0
    }
    $scope.loadimage = function () {
        var img = new Image();
        img.onload = function () {
            $scope.image.width = img.width;
            $scope.image.height = img.height;
            $scope.image.path = $scope.imageurl;
        }
        img.src = $scope.imageurl;
    }
}]);
Run Code Online (Sandbox Code Playgroud)

此脚本有效,但只有在图像很大的情况下多次单击按钮后才能使用.

我该怎么做才能让它一键完成?

有没有比这更好的方法来发现图像大小?

angularjs

5
推荐指数
1
解决办法
4万
查看次数