ng-repeat图像上的指令仅提取有关第一个图像的信息
Directive on ng-repeat images only pulls information about the first image
我的目的是根据高度和宽度动态添加一个类,以便它适合div。这里的这个指令是拉动高度和宽度,然后添加类。我遇到的问题是它获取第一个图像的信息,并使用该数据将类添加到所有其他图像中。因此,所有图像都返回"纵向图像",即使它们需要"横向图像"。
这是我的指示
function dynamicImageDirective(){
return {
restrict: 'A',
link: function(scope, elem, attr) {
elem.on('load', function() {
setTimeout(function(){
var w = $(this).width(),
h = $(this).height();
if (w > h) {
elem.addClass('landscape-image');
} else {
elem.addClass('portrait-image');
}
},0);
});
}
};
}
并重复:
<div class="fullWidth" ng-repeat="gallery in public.galleries">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6 right">
<div class="fullWidth display-inlineBlock verticalCenterDiv" style="height: 325px; padding: 0px;">
<span class="helper"></span>
<img ng-click="openLightboxModal($index)" class="vertical-middle" number="{{$index}}" ng-show="gallery.image_url" ng-src="{{gallery.image_url}}" dynamic-image="gallery">
</div>
</div>
</div>
我能够通过将其更改为"绑定"而不是"加载时"来使其工作。
function dynamicImageDirective(){
return {
restrict: 'A',
link: function(scope, elem, attr) {
elem.bind('load', function() {
var w = this.width;
var h = this.height;
if (w > h) {
$(this).addClass('landscape-image');
} else {
$(this).addClass('portrait-image');
}
});
elem.bind('error', function(){
});
}
}
}
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - 如何使用JQuery基于存储在第一个TD中的表的值来隐藏存储在第二个TD的图像
- 为什么jQuery代码将最后一个图像替换为第一个
- 我的第一个javascript代码不起作用-自制的图像滑块
- jQuery图像滑块首先加载合并的第三和第四的图像,而不是第一个