踩坑笔记(前端)

一、iframe子页面与父页面通信

	// 父页面
	<html xmlns:th="http://www.thymeleaf.org">
		……
		<script th:inline="javascript">
			// 后端通过 ModelAndView 传给前端;
			// 前端通过 Thymeleaf 取得数据
			var computableModelList =  [[${computableModelList}]];
		</script>
		<body>
			<div></div>
			<iframe id="ModelEditor" src="/common/integratedModelEditor"></iframe>
		</body>	
		<script>
			var iframeWindow=$("#ModelEditor")[0].contentWindow;
			var xml = iframeWindow.getCXml();
			
			iframeWindow.hasSearchedTermsComputableModel.push("");
			
		</script>
		……
	</html>
	
	// 子页面
	<html>
		……
		<script>
			var computableModelList = parent.computableModelList;
		</script>
		<body>
			<div></div>
		</body>	
		<script>
			var hasSearchedTermsComputableModel = [];
			
			function getCXml() {
        		return ui.editor.getGraphXml().outerHTML;
    		}
		</script>
		……
	</html>
  1. 父页面获取子页面 属性、方法
	var iframeWindow=$("#ModelEditor")[0].contentWindow;
	// 属性
	iframeWindow.hasSearchedTermsComputableModel.push("");
	// 方法
	var xml = iframeWindow.getCXml();
  1. 子页面获取父页面 属性、方法
	// 属性
	var computableModelList = parent.computableModelList;
	// 方法
	子页面调用父页面方法:parent.window.parentMethod();

在方法调用前,以下点必须要确保 iframe 已经加载完成!!!

  1. iframe上用onload事件
  2. 用document.readyState=="complete"来判断

二、github 删除文件夹

	Git Bash Here
		1. $ git --help
		2. $ dir		查看已有文件夹
		3. $ git rm -r --cached target		删除target文件夹
		4. $ git commit -m '删除target文件夹'		提交到本地
		5. $ git push -u origin master		更新到远程github项目中
	删除完毕

三、延迟运行、循环运行 → setTimeout() setInterval()

	1. setTimeout(()=>{},1000); 
	2. var prepare = setInterval(()=>{},1000);	clearInterval(prepare);

四、String《==》 XML

 	string2XML(string){
    let parser = new DOMParser();
        let xmlObject = parser.parseFromString(string, "text/xml");
        return xmlObject;
    },
    xml2String(xml){
        return (new XMLSerializer()).serializeToString(xml);
    },

五、CSS 计算函数

<div style="height: calc(100% - 100px);"></div>

六、CSS white-space属性 影响换行

	定义如何处理空白
	 var imageContainer = document.createElement("div");
   	 imageContainer.id = "imageContainer";
     imageContainer.style.whiteSpace = "initial";

在这里插入图片描述


七、Vue 给对象添加新的属性 → this.$set()

如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

	1. event.children = children;
		
	2. this.$set(event,'children',children);	// 为vue变量添加属性,这句代码比上句更robust!

八、Vue v-bind的用法

	<!-- 内联字符串拼接 -->
	<img :src="'/path/to/images/' + fileName">
	
	<!-- class 绑定 -->
	<div :class="{ red: isRed }"></div>	//red这个class的存在取决与isRed的true或false
	<div :class="[classA, classB]"></div>
	<div :class="[classA, { classB: isB, classC: isC }]">
	
	<!-- style 绑定 -->
	<div :style="{ fontSize: size + 'px' }"></div>
	<div :style="[styleObjectA, styleObjectB]"></div>

九、js 数组去重

	Array.from(new Set(names))
	
	//lodash
	var newArray = _.uniq(array);	//一般数组
	var newArray = _.uniqBy(array,'geoId');		//对象数组

lodash入门

十、js 浅拷贝 与 深拷贝 lodash.js

	//html引入lodash	
	<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>
	var graphRoot = _.cloneDeep(graph.model.root); //深拷贝

lodash入门

十一、js 数组 交集、并集、补集 lodash.js

	var a = [];
	var b = [];
	var c = [];
	
	_.union(a, b, c);
	_.intersection(a, b, c);
	_.xor(a, b);

十二、类数组对象

	 // cells 类数组对象 没有长度的属性和数组的方法
	var cells = graph.model.cells;
	for(let i in cells){
       x = cells[i].geometry.x;
    }
    for(let i = 0; i<cells.length; i++){
    	//错 ×××××××××××
    }
	
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值