700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > layui页面动态元素没有渲染出来的解决方案

layui页面动态元素没有渲染出来的解决方案

时间:2021-03-07 11:52:31

相关推荐

layui页面动态元素没有渲染出来的解决方案

关于layui页面动态元素没有渲染出来的解决方案

本文主要介绍angluarJS与layui整合使用过程中页面加载时一些动态元素没有显示出来的解决办法。

1、首先在对应的JS文件中自定义repeatFinish指令

在js的末尾自定义repeatFinish指令,需要结合html中的repeat-finish标签来使用,用于监听列表数据渲染完毕的状态。

// An highlighted blockApp.directive('repeatFinish', function () {return {link: function (scope, element, attr) {if (scope.$last == true) {//列表渲染完毕后重新渲染 layui element 元素layui.use(['element'], function () {var element = layui.element;//初始化动态元素,一些动态生成的元素如果不设置初始化,将不会有默认的动态效果element.init();});}}}});

2、在引入该js对应的页面上加载列表处添加reapt-finish标签。

//此处的ciOrderList就是你要渲染的列表//因为我在定义js的时候使用的是 var self = this;所以需要加ctrl//如果你定义的是var self = $scope就不需要这个ctrl了<tr ng-repeat="item in ctrl.ciOrderList" repeat-finish>

3、最后记得在layui组件加载完之后初始化初始化动态元素,说白了就是当数据加载完之后就渲染你的这些动态元素。

<script>$(function () {layui.extend({admin: basePath + '/static/module/layui_we/static/js/admin'});//通过controller来获取Angular应用var appElement = document.getElementById("controller");//获取$scope变量var $scope = angular.element(appElement).scope();layui.use(['form', 'laydate', 'jquery', 'admin', 'element'], function () {var element = layui.element, laydate = layui.laydate, form = layui.form;//初始化动态元素,一些动态生成的元素如果不设置初始化,将不会有默认的动态效果element.init();});})</script>

这三个地方写完你就会发现我们页面的动态元素就出来啦,效果如图:

最后欢迎各位码友们在使用过程中遇到任何问题加我一起交流哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。