NG循环结束后执行函数:(用于瀑布流,下拉框,及相关需要插座dom插件之类的场景)

先定义指令:

app.directive(‘onFinishRender‘,function ($timeout) {
    return {
        restrict: ‘A‘,
        link: function (scope, element, attr) {
            if (scope.$last === true) {
                $timeout(function () {
                    scope.$emit(‘ngRepeatFinished‘);
                    // scope.isSelectShow = false;
});
            }
        }
    }
});

然后再在控制器中进行监听,并调用初始化函数

$scope.$on(‘ngRepeatFinished‘, function(ngRepeatFinishedEvent) {

      var select = document.getElementById(‘mySelect‘);
              console.log(select);
        select.style ="width:100%;height:34px";

       $(".js-example-basic-single").select2();

});
然后再在Html页面绑定:
<tbody ng-repeat="row in convertdisplayed|filter:filter |paging:page.index:page.size"
       on-finish-render="ngRepeatFinished">

原文地址:https://www.cnblogs.com/vonson/p/9330790.html

时间: 2024-10-09 16:00:27

NG循环结束后执行函数:(用于瀑布流,下拉框,及相关需要插座dom插件之类的场景)的相关文章

vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多

一.思路分析和效果图 用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果.然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果: 选择哪种方式实现瀑布流,这里选择绝对定位方式: 关键问题:由于每张图片的宽高不一样,而瀑布流中要求所有图片的宽度一致,高度随宽度等比缩放.而且由于图片的加载是异步延迟.在不知道图片高度的情况下,每个图片所在的item盒子不好绝对定位.因此在渲染页面前先获取所有图片的高度,是解决问题的关键点!这里选择用JS中的Im

Vue.nextTick DOM 更新循环结束之后执行延迟回调

在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 简单来说,Vue 在修改数据后,视图不会立刻更新,而是等同一事件循环中的所有数据变化完成之后,再统一进行视图更新. 知乎上的例子 //改变数据 vm.message = 'changed' //想要立即使用更新后的DOM.这样不行,因为设置message后DOM还没有更新 console.log(vm.$el.textContent) // 并不会得到'changed' //这样可以,nextT

struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")

js设置下拉框选中后change事件无效解决

下拉框部分代码: <select id="bigType"> <option value="">请选择</option> <option value="1">xiamen</option> <option value="2">beijing</option> </select> <select id="smallTy

robotframework 判断下拉框是否存在,如果存在就执行下拉框操作,不存在就跳过执行下拉框操作,进行下一步操作;

#本人新手,仅做学习记录之用 因为工作要求,打开的ui页面,根据前面筛选的条件不同,跳转的新页面不同,本记录涉及的就是有下拉框和没有下拉框,所以要对新打开的页面进行判断:run keyword and return status关键字返回element should be visible 的状态,如果为Ture,则执行下面run keyword if中的select from list by label:如果为Flase,则不执行: select from list by label中label

jquery选中将select下拉框中一项后赋值给text文本框

jquery选中将select下拉框中一项后赋值给text文本框,出现无法将第一个下拉框的value赋值给文本框 因为select默认选中第一项..在选择第一项时,便导致无法激发onchange事件.所以无法进行赋值给文本框 解决方法. select下拉框设置第一项做一个无用的占位option <script type="text/javascript">     function changeSelect(obj) {         var _this = obj;  

jsp页面刷新后保留文本输入框和下拉框的值

保留下拉框 <select name="status">     <option value="all" <c:if test="${status eq 'all'}">selected</c:if>>状态</option>     <option value="notstart" <c:if test="${status == 'notstar

select下拉框使用完毕后,重置按钮使其清空

需求描述:select下拉框后边有两个按钮,一个查询,一个重置,点击重置,select会清空之前选择的那个查询条件 解决思路:卧槽,这不so easy 么,用那个jQ封装的trigger函数搞定啊,对select赋个null的值,我真是个人才,哈哈哈哈哈哈哈嗝(仿佛听到了一群人在说MDZZ~~~),好了,上代码 代码: <button class="btn sbold green" id="resetBut" name="resetBut"

jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码

使用js监听动画结束后进行的操作: $ele.fadeIn(300,function(){...}) $ele.fadeOut(300,function(){...}) $ele.slideUpDown(300,function(){...}) $ele.fadeSlideUpDown(300,function(){...}) 原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/11380628.html