最近在項目中遇到這樣的一個前端的bug,在ng-repeat中綁定的圖片,有一個晃動的特效,在手機端瀏覽的時候,圖片有時候會正常展現,有時就展現不出來。當時猜想是由於angularjs與特效的那些代碼加載的前後順序形成的。有了這樣的猜想,就有查找解決方案的方向了。css
[Angularjs]ng-select和ng-optionshtml
[Angularjs]視圖和路由(一)android
[Angularjs]視圖和路由(二)angularjs
[Angularjs]ng-class,ng-class-even,ng-class-oddpost
[Angularjs]ng-repeat中使用ng-model遇到的問題
自定義一個指令,在加載完成angular repeat時,而後再去綁定那些特效。具體以下所示:
var app = angular.module('mylibraryapp', ['ngRoute', 'pascalprecht.translate', 'ngFileUpload']); //指令 app.directive('onFinishRenderFilters', function ($timeout) { return { restrict: 'A', link: function (scope, element, attr) { if (scope.$last === true) { $timeout(function () { scope.$emit('ngRepeatFinished'); }); } } } });
在使用ng-repeat的標籤上面添加這樣的代碼
<div class="item" id="filediv" ng-repeat="file in files" on-finish-render-filters> ........ </div>
在對應的Controller裏面,添加angular repeat執行完成的回調方法
//加載完成 $scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) { new WOW().init(); var h = $(window).height(); $(".modal-dialog").css("margin-top", (h / 2) - 100 + "px"); });
這個問題折騰了很長時間,在電腦上測試測試不出來,在部分低版本的android手機上面有這樣的問題。