这是一个基于angulsrjs 和bootstrap样式的图片列表指令
js部分代码如下
var app=angular.module("test",["bane/image/showgrid.html"]) .directive("baneImggrid",function(){ return { restrict:'EA', transclude: true, replace: false, //templateUrl: "template/image(1).html", templateUrl:"bane/image/showgrid.html", scope:{ baneItems:'=', smSrc:'@', orgSrc:'@', radioText:'@', radioValue:'@', radioShow:'=', deleteShow:'=', selectItem:'=', itemDelete:'=', //beforeDelete:'&' }, link:function(scope, element, attrs,contr){ scope.selectItem={"cover":""}; scope.orgSrc=(scope.orgSrc?scope.orgSrc:scope.smSrc); scope.smSize={}; if(attrs.smWidth){ scope.smSize.width=attrs.smWidth; } if(attrs.smHeight){ scope.smSize.height=attrs.smHeight; } scope.showBigBox=function(index){ scope.baneItems[index].baneBigImageShow=true; } scope.closeBox=function(index){ scope.baneItems[index].baneBigImageShow=false; } scope.deleteItem=function(index){ scope.itemDelete=scope.baneItems[index]; //scope.beforeDelete(); scope.baneItems.splice(index, 1); } } } }); angular.module("bane/image/showgrid.html", []).run(["$templateCache", function($templateCache) { $templateCache.put("bane/image/showgrid.html", '<div class="col-xs-6 col-md-3" style="width:auto; " ng-repeat="item in baneItems ">'+ ' <div class="thumbnail" style="cursor:pointer;position:relative;" >'+ ' <img ng-src="{{item[smSrc]}}" ng-style="smSize" ng-click="showBigBox($index)"/> '+ ' <div style=" position:absolute; bottom:4px;background: rgba(225,225,225,0.5); right: 4px;left: 4px; text-align:right;">'+ ' <span style="float:left;" ng-show="radioShow"><input type="radio" ng-model="selectItem.cover" value="{{item[radioValue]}}" /><label>{{radioText}}</label></span>'+ ' <i class="glyphicon glyphicon-search" ng-click="showBigBox($index)" style="margin: 2px 5px;"></i>'+ ' <i class="glyphicon glyphicon-trash" ng-click="deleteItem($index)" style="margin: 2px 5px;" ng-show="deleteShow"></i>'+ ' </div>'+ ' </div>'+ ' <div class="modal fade bs-example-modal-lg in" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="false" style=" padding-right: 15px; display:block" ng-show="item.baneBigImageShow">'+ ' <div class="modal-backdrop fade in"></div>'+ ' <div class="modal-dialog modal-lg" style="z-index:1100;">'+ ' <div class="modal-content">'+ ' <div class="modal-header">'+ ' <button type="button" class="close" data-dismiss="modal" ng-click="closeBox($index)"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>'+ ' </div>'+ ' <div class="modal-body" style="text-align:center;">'+ ' <img ng-src="{{item[orgSrc]?item[orgSrc]:item[smSrc]}}" style="max-width:100%;"/>'+ ' </div>'+ ' </div>'+ ' </div>'+ ' </div>'+ '</div>' ); }]);
原文地址:http://blog.csdn.net/fengxiaotx/article/details/41822755